i## 1. 普通权限
1. r(读权限)4
针对目录
可以使用ls命令查看内容。
针对普通文件
可以使用文件查看相关的命令(cat/less/more/head/tail等)
2. w(写权限)2
针对目录
可以创建删除,重命名等(mkdir/touch/mv/rm等)
针对普通文件
可以修改该文件的内容(vi,vim等)
3. x(执行权限)1
针对目录
可以进入或者切换到该目录
针对普通文件
可以被执行。
2. 修改文件普通权限
用法:chmod [选项]... 模式[,模式]... 文件...
或:chmod [选项]... 八进制模式 文件...
-R, --recursive 修改目录及下面文件的权限
1. 字母方式修改
u:所属用户
g:所在组
o:其他用户
a:所有用户
示例:
# 给file1添加其他人的写权限。
chmod o+w file1
# 给file1其他人的权限设置为rwx
chmod o=rwx file1
# 同时设置多个权限
chmod u=rwx,g=rw,o=- file1
# 给所有人添加x权限
chmod a+x file1
2. 数字方式修改
示例
# 修改权限为rwx r-x r-x
chmod 755 file1
# 修改权限为rwx rw- rw-
chmod 766 file1
3. 修改文件的属主和属组
3.1 chown
用法:chown [选项]... [所有者][:[组]] 文件...
选项:
-R: 递归修改文件夹
示例:
chown root /u 将 /u 的属主更改为"root"。
chown root:staff /u 和上面类似,但同时也将其属组更改为"staff"。
chown :staff /u 和上面类似,但只其属组更改为"staff"。
chown -hR root /u 将 /u 及其子目录下所有文件的属主更改为"root"。
3.2 chgrp
用法:chgrp [选项]... 用户组 文件...
选项:
-R: 递归修改文件夹
示例:
chgrp staff /u 将 /u 的属组更改为"staff"。
chgrp -hR staff /u 将 /u 及其子目录下所有文件的属组更改为"staff"。
4. 实战
# 创建目录在跳板机
mkdir -p /data/code
# 目录权限管控
# 1. 只给开发人员使用,把目录给coding组。
chgrp coding /data/code
chmod g+w /data/code
# 2. 其他人不能访问
chmod o-rx /data/code
# 为目录添加粘制位权限,保证不同用户创建的文件其他用户不可删除
chmod o+t /data/code