在 Ubuntu 中,文件权限是文件系统的重要组成部分,它控制谁可以读取、写入或执行文件。文件权限主要包括三种类型:读取(read)、写入(write)和执行(execute),并且这些权限可以分别应用于文件的所有者(user)、所属组(group)和其他用户(others)。
文件权限类型
每个文件或目录的权限分为三组,每组包含三个权限位:
- 用户权限(user permissions) :文件所有者的权限。
- 组权限(group permissions) :文件所属组的权限。
- 其他权限(other permissions) :系统中所有其他用户的权限。
权限位分别为:
- r:读权限(read),值为 4。
- w:写权限(write),值为 2。
- x:执行权限(execute),值为 1。
这些权限可以组合使用,例如:
rwx表示读、写、执行权限全部具备(7)。rw-表示读、写权限具备,但无执行权限(6)。r--表示只有读权限(4)。
查看文件权限
使用 ls -l 命令查看文件或目录的权限:
sh
复制代码
ls -l /path/to/file
示例输出:
sh
复制代码
-rw-r--r-- 1 user group 16569 Jun 2 06:30 android.ipr
修改文件权限
使用 chmod 命令
chmod(change mode)命令用于更改文件或目录的权限。可以使用符号模式或八进制模式修改权限。
符号模式
符号模式使用 u、g、o 和 a 来表示用户、组、其他用户和所有用户,使用 +、- 和 = 来添加、删除或设置权限。
- u:用户(文件所有者)
- g:组
- o:其他用户
- a:所有用户(默认)
示例:
sh
复制代码
chmod u+r /path/to/file # 给文件所有者添加读权限
chmod g+w /path/to/file # 给组添加写权限
chmod o+x /path/to/file # 给其他用户添加执行权限
chmod a+rwx /path/to/file # 给所有用户添加读、写、执行权限
chmod u=rw,go=r /path/to/file # 设置文件所有者读写权限,组和其他用户只读权限
八进制模式
八进制模式使用数字表示权限,每个数字是 4(读)、2(写)、1(执行)的组合。
- 7:读、写、执行(4+2+1)
- 6:读、写(4+2)
- 5:读、执行(4+1)
- 4:读
- 3:写、执行(2+1)
- 2:写
- 1:执行
- 0:无权限
示例:
sh
复制代码
chmod 755 /path/to/file # 用户拥有读、写、执行权限,组和其他用户只有读、执行权限
chmod 644 /path/to/file # 用户拥有读、写权限,组和其他用户只有读权限
chmod 700 /path/to/file # 只有用户拥有读、写、执行权限,组和其他用户无权限
修改文件所有者和组
使用 chown 命令
chown(change owner)命令用于更改文件或目录的所有者和组。
sh
复制代码
sudo chown new_user:new_group /path/to/file
示例:
sh
复制代码
sudo chown zyz:zyz /path/to/file # 将文件所有者和组更改为 `zyz`
使用 chgrp 命令
chgrp(change group)命令用于更改文件或目录的组。
sh
复制代码
sudo chgrp new_group /path/to/file
示例:
sh
复制代码
sudo chgrp zyz /path/to/file # 将文件组更改为 `zyz`
示例操作汇总
查看文件权限
sh
复制代码
ls -l /path/to/file
修改文件权限
符号模式
sh
复制代码
chmod u+r /path/to/file # 添加读权限
chmod g+w /path/to/file # 添加写权限
chmod o+x /path/to/file # 添加执行权限
chmod a+rwx /path/to/file # 添加读、写、执行权限
chmod u=rw,go=r /path/to/file # 设置权限
八进制模式
sh
复制代码
chmod 755 /path/to/file # 设置权限
chmod 644 /path/to/file # 设置权限
chmod 700 /path/to/file # 设置权限
修改文件所有者和组
sh
复制代码
sudo chown zyz:zyz /path/to/file # 更改所有者和组
sudo chgrp zyz /path/to/file # 更改组