主题
权限管理
在UNIX和类UNIX操作系统中,每个文件和目录都有一个所有者(owner),这是指文件或目录的创建者或分配者,他们拥有该文件或目录的特殊权限。
在文件系统中,有三种主要的权限组:所有者、组(group)和其他用户(others)。
所有者(Owner):所有者是文件或目录的创建者,他们通常拥有最高的权限,包括读取、写入和执行文件或目录的权限。所有者可以是文件或目录的创建者,也可以是分配者,具体取决于系统的设置。
组(Group):组是一个用户组,包含多个用户。文件或目录通常分配给一个特定的组,这些组成员拥有与该组关联的权限。这意味着在同一组中的所有用户都可以具有相同的权限。例如,如果一个文件的组为 "developers",那么所有属于 "developers" 组的用户都将具有相同的权限。
其他用户(Others):其他用户是除了所有者和属于特定组的用户之外的所有用户。这组用户通常拥有最低的权限,只有在明确授权的情况下才能访问文件或目录。
chown
chown 是一个用于更改文件或目录的所有者和/或组的命令。它的主要用途是更改文件或目录的拥有者,以便不同的用户或组可以访问它们。
一些常见选项包括:
-R:递归更改文件或目录及其子目录的所有权。-c:显示更改的详细信息。-v:显示操作的详细信息,包括成功和失败的操作。
bash
# 更改文件的所有者
chown newowner file.txt
# 更改文件的所有者和组
chown newowner:newgroup file.txt
# 递归更改目录及其子目录的所有权
chown -R newowner:newgroup mydir
# 以数字形式更改所有者(UID)和组(GID)
chown 1001:1002 file.txt
# 使用通配符
chown newowner *.txtchmod
chmod 是一个用于更改文件或目录权限的命令,它允许您指定哪些用户可以读取、写入或执行文件。
使用数字模式设置权限
- 4 表示读权限(Read)。
- 2 表示写权限(Write)。
- 1 表示执行权限(Execute)。
bash
# 设置文件 `file.txt` 的所有者具有读、写和执行权限,组和其他用户具有读和执行权限:
chmod 755 file.txt
# 设置目录 `mydir` 及其所有子目录和文件为只有所有者有读写执行权限,其他用户只有读权限:
chmod -R 700 mydir使用符号模式设置权限
使用符号模式设置权限是另一种设置文件或目录权限的方法,它使用符号表示不同的权限操作,包括添加权限、删除权限和设置权限。
常见的操作符包括:
+:添加权限。-:删除权限。=:设置权限。
常见的权限符号包括:
u:所有者权限。g:组权限。o:其他用户权限。a:所有用户的权限(等同于ugo)。r:读取权限。w:写入权限。x:执行权限。
bash
# 添加所有者的写入权限
chmod u+w file.txt
# 删除组用户的执行权限
chmod g-x file.txt
# 设置其他用户的读取权限,同时保持所有者和组的权限不变
chmod o=r file.txt
# 设置所有用户的权限为只读,相当于 `chmod a=r file.txt`:
chmod =r file.txt
# 递归地将目录 `mydir` 及其所有子目录和文件的所有者权限设置为读取和写入
chmod -R u+rw mydir