CentOS 基础命令 II
CentOS 基础命令(二)
文件的用户所有权(属主、所属群组、其他所有人)及关联用户所有权的权限。
ls -l # 查看当前目录
...
-rw-r--r--. 1 root root 9580 Sep 18 18:18 Hello-Lucky
...
在 CentOS 中,新建一个用户,默认也会自动创建与用户名同名的所属群组。文件的用户所有权的概念(如属主、所属群组和其它所有用户)与文件关联用户所有权的具体操作的权限会在文件的访问权限上实现。
属主(user)、所属群组(group)、其它所有人(other)。
读、写、执行权限和无权限分别用 r(read)、w(write)、x(execute)、-
或 4、2、1、0
表示。
新建一个文件,其所有权默认属主和所属群组分别为创建者及其所在群组;文件的权限模式位(也可以说,文件的访问权限)可以体现属主、所属群组和其它所有人对此文件的读、写和执行权限。
文件所有权 | 属主 | 所属群组 | 其他所有人 |
---|---|---|---|
读 | read | r | 4 |
写 | write | w | 2 |
执行 | execute | x | 1 |
新建文件的权限由 umask
的值决定,可以在命令行执行 umask
以输出其值。默认超级用户 root 的所属群组为 root,正如以上文件信息所示。
新建目录的权限为居有所有权限(rwxrwxrwx 或 777 ,也就是 4+2+1,4+2+1,4+2+1)减去模式位掩码值(umask 值)。
新建文件的权限为具有不可执行的普通文件的所有权限(rw-rw-rw- 或 666)减去模式位掩码值。
root 用户的 umask 值一般为 022,所以 root 用户新建目录的权限为 rwxr-xr-x 或 755(7-0;7-2;7-2),root 用户新建文件的权限为 rw-r–r-- 或 644(7-1-0;7-1-2=4;7-1-2=4),普通用户的 umask 值一般为 002,所以普通用户新建目录和文件的权限按以上方式计算分别为 rwxrwxr-x- (775) 和 rw-rw-r-- (664)。
“In Linux everything is a file.”,也就是说 Linux 所有的东西都以文件实现,比如目录、硬盘等。文件访问权限的读、写和执行在目录文件上和其它类型文件是有区别的。
目录的访问权限:
- 读-可以列表目录的所有文件名称和文件类型;如果还有执行权限,则可列表目录下所有文件及其属性,并且可以从目录拷贝文件,也就是说,可以读取文件内容。
- 写-可以增删和修改文件,但必须同时具有执行权限。
- 执行-可以进入目录。
文件的访问权限:
- 读-可查看或复制文件内容。
- 写-可修改文件内容。
- 执行-可运行文件(如果文件是可执行文件)。
注:可写目录下的只读文件的内容可以被修改(用 vim)。 root 用户是超级用户,就算文件的信息中表明其没有权限的情况下,有时他仍然可以修改文件。
chmod
change file mode bits
修改文件模式位
所有权类型
- u = user
- g = group
- o = other
- a = all
修改方式
- +
- -
- =
权限
- r 或 4
- w 或 2
- x 或 1
- - 或 0
示例:
chmod o+w Hello-Lucky # 对其他所有人添加可写权限。
chmod o=rw Hello-Lucky # 效果同上。
chmod a+w Hello-Lucky # 对所有人添加科协权限。
chmod g-w Hello-Lucky # 对所属群组减去可写权限。
chmod o-w Hello-Lucky # 对其他所有人减去可写权限。
chmod g-w,o-w Hello-Lucky # 等同以上两次命令的效果。
chmod 644 Hello-Lucky # 直接设定文件的权限为上面显示的权限值。
文件的特殊权限
setuid 权限
setgid 权限
stick bit 权限