Bash 文件系统及权限
在正式进入 Bash 教程之前,我们需要来了解一下 Linux 的文件系统及文件权限。
文件系统
Linux 文件系统中的所有文件都可以被称为目录,这些文件的类别可划分为以下三种:
- 普通文件(数据、文本、图像、程序指令)
- 特殊文件(用于访问硬件设备)
- 目录(包含普通文件和特殊文件的文件夹)
我们可以使用ls -l
命令来罗列出所有文件和目录
上图共有七列,其意如下:
- 代表文件类型及权限,每个文件均以类型开头,接着指定访问权限。以特定字符表示:
- 常规文件(
-
) - 特殊档案(
c
) - 命名管道(
p
) - 块设备(
b
) - 套接字(
s
) - 目录(
d
) - 链接(
l
)
- 常规文件(
- 代表存储块的数量。
- 代表文件的所有者或具有管理权限的超级用户。
- 代表所有者、超级用户组
- 代表文件大小
- 代表文件的最后修改日期(具体到分钟)
- 代表文件或目录的名称
文件权限
Linux 通过以下两个授权属性来保护其文件系统:
- 权限
- 阅读权限(
r
),该权限允许查看文件内容。 - 写入权限(
w
),该权限允许修改文件内容。 - 执行权限(
x
),该权限允许运行编程文件或脚本。 - 在调用权限的情况下会提供(
-
)
- 阅读权限(
- 所有权
- 所有者是创建文件的超级用户,具有访问与文件关联的任何权限。
- 用户组是超级用户创建的一或多用户,与超级用户一样具有访问与文件关联的任何权限。
- 其他用户是排除在超级用户和用户组之外的用户,只具有前两者创建或拥有的任何文件或目录关联的权限。
举个例子
在上图红色框体内的第一列共有十个字符,我们先排除第一个字符(文件类型),往后的九个字符均表示权限。
第2-4个字符(rw-
)指定了超级用户的读取和写入权限。
第5-7个字符(r--
)指定了用户组的读取权限。
第8-10个字符(r--
)指定了其他用户的读取权限,但在这里,读写均被拒绝。
更改权限
使用chmod
命令可以更改用不同用户类型的文件权限。添加或删除任何用户类型的任何权限的基本形式:
chmod [class][operator][permission] file_name
chmod [ugoa][+or-][rwx] file_name
class
由u
(超级用户),g
(用户组),o
(其他用户),a
(所有类型)表示。operator
(+
或-
)表示添加或删除权限。permission
由指示符r
(读取),w
(修改),x
(运行)表示。
为所有类型添加运行权限