默认组所有权
每个用户可以是多个组的成员(列在 /etc/group 文件中的多个组下)。
只有一个组将是用户的主要组(列在 /etc/password 中的用户条目中)。
当用户创建文件时,默认情况下该文件将由用户的主要组拥有。
如果他们希望该文件归其他组之一所有,则必须使用 chgrp 命令修改组成员身份。
完成此操作的更方便方法是临时登录到另一个组,使该组成为替代主要组。
这样,我们创建的任何新文件都将自动归所需组所有,我们无需手动更改组成员资格。
检查下面的示例并注意 newgrp 命令的使用。
$ id uid=1001(user) gid=1001(user) groups=1001(user),10(wheel)
$ touch file1 $ ls -l file1 -rw-rw-r--. 1 user user 0 Nov 16 14:17 file1
$ newgrp wheel $ touch file2 $ ls -l file2 -rw-r--r--. 1 user wheel 0 Nov 16 14:22 file2
更改文件权限
chmod 命令用于更改文件的权限。
它可用于象征性地添加或者删除权限。
例如,要为文件所有者添加执行权限,我们将运行:
$ chmod u+x file_name
或者,要为拥有该文件的组添加读写权限,我们可以运行:
$ chmod g+rw file_name
除了添加权限之外,chmod 的符号语法也可用于减去或者设置为某个绝对值,如以下示例所示:
$ chmod o-w file_name
$ chmod u=rwx,g=rx,o= file_name
chmod 命令还可以使用数字表示显式设置权限。
例如,要将文件的权限设置为 rwxrwxr-,我们可以运行:
$ chmod 774 file_name
文件的所有权
每个文件都归特定用户(或者 UID)和特定组(或者 GID)所有。
chown 命令可用于仅更改用户或者文件的用户和组。
这是将文件“file1”的所有者更改为“user”并将其“user”更改为 users 的示例。
请注意,使用 ls -l 命令只是为了显示更改,而不是更改文件所有权的必要步骤:
# ls -l total 8 -rw-r--r--. 1 root root 30 Nov 16 04:47 file1 -rw-r--r--. 1 root root 130 Nov 16 04:47 file2
# chown user:user file1
# ls -l total 8 -rw-r--r--. 1 user user 30 Nov 16 04:47 file1 -rw-r--r--. 1 root root 130 Nov 16 04:47 file2
chown 命令的基本格式如下:
# chown user.group filename
可以使用冒号 (:) 代替句点 (.) 分隔符。
# chown user:group filename
此外,用户名或者组名都可以省略。
如果省略用户名(但存在分隔符),则 chown 命令的行为类似于 chgrp 命令,并且仅更改组所有权。
如果省略组名(但存在分隔符,则该组将设置为指定用户的登录组。
如果同时省略组名和分隔符,则仅更改用户名。
例如,要仅更改所有者,我们可以运行以下命令:
# chown user filename
仅更改文件组的备用命令是 chgrp 命令。
例如:
# chgrp group filename
普通用户通常使用 chgrp 命令来更改其文件的组所有权。
chown 命令通常只由 root 用户使用。
文件和目录权限
以下是 ls -l 的示例输出;我们可以从每行的第一个字符看到 foo 和 bar 是目录(由 d 表示),而 meta 是一个常规文件(由 - 表示)。
$ ls -l drwxr-xr-x 2 user user 6 Jan 7 2015 Desktop -rw-rw-r-- 1 user user 0 Nov 16 14:17 file1 -rw-r--r-- 1 user wheel 0 Nov 16 14:22 file2
接下来的九个字符显示文件对用户、组和其他人(或者其他所有人)的权限,如下所示,为了清楚起见,添加了括号:
-(rw-) (r--) (r--) 1 user wheel 0 Nov 16 14:22 file2
现在所有者拥有读写权限 (rw-),组和其他所有人只有读取权限 (r-)。
这称为符号表示,因为诸如 r、w 和 x 之类的字母用于表示权限。
权限也可以用数字表示:r = 4; w = 2; x = 1
添加每个部分,以便文件元的权限(来自上面的示例)为 664.
这是查看我们如何得出该数字的另一种方法:
-(rw-) (rw-) (r--) -(42-) (42-) (4--) 6 6 4
在每个部分中添加数字会导致 664 的权限。