Appearance
第6章:文件权限操作
6.1 权限的含义
基本权限
- Linux文件和目录有三种基本权限:
- 读(r):可以查看文件内容或列出目录中的文件
- 写(w):可以修改文件内容或在目录中创建、删除、重命名文件
- 执行(x):可以执行文件或进入目录
权限分组
- 权限分为三组,分别对应不同的用户:
- 所有者(u):文件或目录的创建者
- 所属组(g):文件或目录所属的用户组
- 其他用户(o):既不是所有者也不是所属组成员的用户
权限表示方法
- 符号表示:如
rwxr-xr-- - 数字表示:如
754(4-2-1 规则)r= 4w= 2x= 1- 例如:
rwx= 4+2+1 = 7,r-x= 4+1 = 5,r--= 4
6.2 查看文件/目录权限
ls -l 命令
- 功能:以长格式显示文件和目录的详细信息,包括权限
- 示例:bash
$ ls -l -rw-r--r-- 1 user user 1234 May 20 14:30 file.txt drwxr-xr-x 2 user user 4096 May 20 14:30 directory
权限字段解读
- 第一个字符:文件类型
-:普通文件d:目录l:符号链接c:字符设备b:块设备
- 接下来的9个字符:权限(3组,每组3位)
- 第2-4位:所有者权限
- 第5-7位:所属组权限
- 第8-10位:其他用户权限
示例解读
-rw-r--r--:- 文件类型:普通文件
- 所有者:读、写(rw-)
- 所属组:读(r--)
- 其他用户:读(r--)
drwxr-xr-x:- 文件类型:目录
- 所有者:读、写、执行(rwx)
- 所属组:读、执行(r-x)
- 其他用户:读、执行(r-x)
6.3 修改权限
chmod命令
- 功能:修改文件或目录的权限
- 格式:
- 符号法:
chmod [u/g/o/a][+/-/=][r/w/x] 文件/目录 - 数字法:
chmod 数字 文件/目录
- 符号法:
符号法示例
- 给所有者添加执行权限:bash
$ chmod u+x file.txt - 给所属组添加写权限:bash
$ chmod g+w file.txt - 移除其他用户的执行权限:bash
$ chmod o-x file.txt - 给所有用户添加读权限:bash
$ chmod a+r file.txt - 设置所有者权限为读写执行,所属组为读执行,其他用户为读:bash
$ chmod u=rwx,g=rx,o=r file.txt
数字法示例
- 设置权限为 rwxr-xr--(754):bash
$ chmod 754 file.txt - 设置权限为 rw-rw-rw-(666):bash
$ chmod 666 file.txt - 设置权限为 rwxrwxrwx(777):bash
$ chmod 777 file.txt
递归修改权限
- 使用
-R选项递归修改目录及其内容的权限:bash$ chmod -R 755 directory
6.4 修改文件所有者与所属组
chown命令
- 功能:修改文件或目录的所有者
- 格式:
chown 用户名 文件/目录 - 示例:bash
$ chown user1 file.txt - 同时修改所有者和所属组:bash
$ chown user1:group1 file.txt - 递归修改:bash
$ chown -R user1:group1 directory
chgrp命令
- 功能:修改文件或目录的所属组
- 格式:
chgrp 组名 文件/目录 - 示例:bash
$ chgrp group1 file.txt - 递归修改:bash
$ chgrp -R group1 directory
6.5 新手踩坑:权限不足的解决方法
常见权限错误
- Permission denied:权限不足,无法执行操作
- Cannot create directory:无法创建目录,权限不足
- Cannot write to file:无法写入文件,权限不足
解决方法
检查当前用户:
bash$ whoami检查文件权限:
bash$ ls -l file.txt使用sudo命令:
- 对于系统文件或其他用户的文件,使用
sudo获取临时管理员权限:
bash$ sudo chmod 755 file.txt- 对于系统文件或其他用户的文件,使用
修改文件所有者:
- 如果是自己的文件,确保所有者是当前用户:
bash$ sudo chown $USER file.txt修改目录权限:
- 确保目录有执行权限,否则无法进入:
bash$ chmod +x directory检查父目录权限:
- 确保父目录有相应的权限,否则无法在其中创建文件或目录
权限管理最佳实践
- 最小权限原则:只给用户必要的权限
- 定期检查权限:定期检查系统文件的权限设置
- 使用用户组:通过用户组管理权限,提高安全性
- 备份重要文件:修改权限前备份重要文件
实战练习:权限管理
创建一个测试文件:
bash$ touch test.txt查看文件权限:
bash$ ls -l test.txt修改文件权限为 rwxr-xr--:
bash$ chmod 754 test.txt再次查看文件权限:
bash$ ls -l test.txt创建一个测试目录:
bash$ mkdir testdir查看目录权限:
bash$ ls -ld testdir递归修改目录权限:
bash$ chmod -R 755 testdir尝试修改系统文件权限(需要sudo):
bash$ sudo chmod 644 /etc/passwd
通过学习文件权限操作,你将能够更好地控制文件和目录的访问权限,提高系统的安全性。
