如何在 Linux 中管理文件和目录权限/所有权

默认组所有权

每个用户可以是多个组的成员(列在 /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 用户使用。

欢迎来到之路教程(on itroad-com)

文件和目录权限

以下是 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 的权限。

日期:2020-09-17 00:13:42 来源:oir作者:oir