codecamp

Bash 文件系统及权限

在正式进入 Bash 教程之前,我们需要来了解一下 Linux 的文件系统及文件权限。

文件系统

Linux 文件系统中的所有文件都可以被称为目录,这些文件的类别可划分为以下三种:

  • 普通文件(数据、文本、图像、程序指令)
  • 特殊文件(用于访问硬件设备)
  • 目录(包含普通文件和特殊文件的文件夹)

我们可以使用ls -l命令来罗列出所有文件和目录

上图共有七列,其意如下:

  1. 代表文件类型及权限,每个文件均以类型开头,接着指定访问权限。以特定字符表示:
    • 常规文件(-
    • 特殊档案(c
    • 命名管道(p
    • 块设备(b
    • 套接字(s
    • 目录(d
    • 链接(l
  2. 代表存储块的数量。
  3. 代表文件的所有者或具有管理权限的超级用户。
  4. 代表所有者、超级用户组
  5. 代表文件大小
  6. 代表文件的最后修改日期(具体到分钟)
  7. 代表文件或目录的名称

文件权限

Linux 通过以下两个授权属性来保护其文件系统:

  1. 权限
    • 阅读权限(r),该权限允许查看文件内容。
    • 写入权限(w),该权限允许修改文件内容。
    • 执行权限(x),该权限允许运行编程文件或脚本。
    • 在调用权限的情况下会提供(-
  2. 所有权
    • 所有者是创建文件的超级用户,具有访问与文件关联的任何权限。
    • 用户组是超级用户创建的一或多用户,与超级用户一样具有访问与文件关联的任何权限。
    • 其他用户是排除在超级用户和用户组之外的用户,只具有前两者创建或拥有的任何文件或目录关联的权限。

举个例子

在上图红色框体内的第一列共有十个字符,我们先排除第一个字符(文件类型),往后的九个字符均表示权限。 第2-4个字符(rw-)指定了超级用户的读取和写入权限。 第5-7个字符(r--)指定了用户组的读取权限。 第8-10个字符(r--)指定了其他用户的读取权限,但在这里,读写均被拒绝。

更改权限

使用chmod命令可以更改用不同用户类型的文件权限。添加或删除任何用户类型的任何权限的基本形式:

chmod [class][operator][permission] file_name
chmod [ugoa][+or-][rwx] file_name
  • classu(超级用户),g(用户组),o(其他用户),a(所有类型)表示。
  • operator+-)表示添加或删除权限。
  • permission由指示符r(读取),w(修改),x(运行)表示。

为所有类型添加运行权限

Bash 脚本
Bash 入门
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }