在linux下,
文件用户分三种:文件所有人、用户组和其他用户
文件权限分三种:读取,写入,执行
chmod可以改变不同用户的文件使用权限(chmod: change mode)
chmod有两种模式:符号模式与数字模式
符号模式
通过字符设定用户权限,参数格式为 用户类型+操作+权限,使用如下:
# 给所有用户添加读写执行权限 sudo chmod a=rwx file.txt # 给其他用户添加执行权限 sudo chmod o+x file.txt
u,g,o,a分别表示用户类型user,group,others,all
+,-,=分别表示添加权限,去除权限,设置指定权限
r,w,x分别表示读取,写入,执行权限
比如要给所有用户添加执行权限:
sudo chmod a+x file.txt
数字模式
有时也能看到用数字更改权限的方法:
sudo chmod 777 file.txt
3个7分别改变了所有者,用户组和其它用户的文件使用权限,每个数字代表的权限如下:
数字 | 权限 | 对应的rwx |
---|---|---|
7 | 读写执行 | rwx |
6 | 读写 | rw- |
5 | 读执行 | r-x |
4 | 读 | r– |
3 | 写执行 | -wx |
2 | 写 | -w- |
1 | 执行 | –x |
0 | 无 | — |
7=4+2+1=r w x
3=2+1=w x
也就是说数字权限与符号权限是对应的。
有时要将一个文件夹下所有文件和子目录都改变权限,此时要使用递归参数:
chmod -R 777 mydir
可以使用以下命令查看当前目录下所有文件的权限:
ls -ll