一.基本权限
1.基本权限的类别
①读取:read,允许查看内容
②写入:write,允许修改内容,可以执行rm,mv,cp,mkdir等操作
③可执行:execute,允许运行和切换,能够cd切换进目录
权限使用对象(归属关系)
所有者(属主):user 拥有此文件/目录的用户
所属组(属组):group 拥有此文件/目录的组
其他人:other 除了所有者.所属组以外的用户
2.查看权限
命令:ls -ld 文件或目录
以-开头为文本文件
以d开头为目录
以l开头为快捷方式
3.设置基本权限:
chmod [-R] 归属关系+-=权限类别 文档...
eg:
[root@server0 ~]# mkdir /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod u-w /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod g+w /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod o=--- /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod u=rwx,g=r,o=w /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod ugo=rwx /nsd01
[root@server0 ~]# ls -ld /nsd01
判断该用户的权限
1.判断用户针对该数据所处于的身份
2.查看相应身份权限位置
匹配即停止
所有者>所属组>其他人
目录的 r 权限:能够 ls 浏览此目录内容
目录的 w 权限:能够执行 rm/mv/cp/mkdir/touch/等更改目录内容的操作
目录的 x 权限:能够 cd 切换到此目录
目录默认有x权限,文本文件默认没有x权限
其他人有w权限时,该目录或文件会有绿色背景
对其他人,根目录最多只能给rx权限
对目录来说,最重要的是x权限,如果rx权限没有,只有w权限,则默认w权限无效
如果父目录没有相应权限,即使子目录有满权限,也依旧无法对其目录进行操作
eg: r-x /nsd rwx /nsd/zzz
4.设置文档归属
• 使用 chown 命令
– chown [-R] 属主 文档...
– chown [-R] :属组 文档...
– chown [-R] 属主:属组 文档.
eg:
[root@server0 ~]# mkdir /nsd03
[root@server0 ~]# ls -ld /nsd03
[root@server0 ~]# groupadd stugrp
[root@server0 ~]# chown lisi:stugrp /nsd03
[root@server0 ~]# ls -ld /nsd03
[root@server0 ~]# chown student /nsd03
[root@server0 ~]# ls -ld /nsd03
[root@server0 ~]# chown :root /nsd03
[root@server0 ~]# ls -ld /nsd03
案例
利用root用户新建/nsd06目录,并进一步完成下列操作
1)将属主设为gelin01,属组设为tarena组
[root@server0 /]# useradd gelin01
[root@server0 /]# useradd gelin02
[root@server0 /]# groupadd tarena
[root@server0 /]# chown gelin01:tarena /nsd06
2)使用户gelin01对此目录具有rwx权限
除属主与属组之外的人,对此目录无任何权限
[root@server0 /]# chmod o=--- /nsd06
3)使用户gelin02能进入、查看此目录内容
[root@server0 /]# gpasswd -a gelin02 tarena #将用户加入组
4)将gelin01加入tarena组, 将nsd06目录的权限设为rw-r-x---
再测试gelin01用户能否进入此目录
[root@server0 /]# gpasswd -a gelin01 tarena
[root@server0 /]# chmod u=rw,g=rx /nsd06
[root@server0 ~]# mkdir /nsd08
[root@server0 ~]# ls -ld /nsd08
[root@server0 ~]# chown :stugrp /nsd08 #修改所属组
[root@server0 ~]# ls -ld /nsd08
[root@server0 ~]# mkdir /nsd08/abc01
[root@server0 ~]# ls -ld /nsd08/abc01
[root@server0 ~]# chmod g+s /nsd08 #赋予Set GID 权限
[root@server0 ~]# ls -ld /nsd08
[root@server0 ~]# mkdir /nsd08/abc02
[root@server0 ~]# ls -ld /nsd08/abc02
[root@server0 ~]# touch /nsd08/1.txt
[root@server0 ~]# ls -l /nsd08/1.txt
用户加入组,继承祖权限,但用户需要su - 用户重新登录
二.附加权限(特殊权限)
①Set GID
• 附加在属组的 x 位上
– 属组的权限标识会变为 s
– 适用于目录,Set GID可以使目录下新增的文档自动设置与父目录相同的属组
eg:
[root@server0 ~]# mkdir /nsd08
[root@server0 ~]# ls -ld /nsd08
[root@server0 ~]# chown :stugrp /nsd08 #修改所属组
[root@server0 ~]# ls -ld /nsd08
[root@server0 ~]# mkdir /nsd08/abc01
[root@server0 ~]# ls -ld /nsd08/abc01
[root@server0 ~]# chmod g+s /nsd08 #赋予Set GID 权限
[root@server0 ~]# ls -ld /nsd08
[root@server0 ~]# mkdir /nsd08/abc02
[root@server0 ~]# ls -ld /nsd08/abc02
[root@server0 ~]# touch /nsd08/1.txt
[root@server0 ~]# ls -l /nsd08/1.txt
②t权限 (粘滞位)
Sticky Bit
• 附加在其他人的 x 位上
– 其他人的权限标识会变为 t
– 适用于开放 w 权限的目录,可以阻止用户滥用 w 写入权限(禁止操作别人的文档)
eg:
[root@server0 ~]# mkdir /home/public
[root@server0 ~]# chmod ugo=rwx /home/public
[root@server0 ~]# ls -ld /home/public
[root@server0 ~]# chmod o+t /home/public
[root@server0 ~]# ls -ld /home/public
三.ACL策略
1.acl策略的作用
• 文档归属的局限性
– 任何人只属于三种角色:属主、属组、其他人
– 无法实现更精细的控制
2.• acl访问策略
– 能够对个别用户、个别组设置独立的权限
– 大多数挂载的EXT3/4、XFS文件系统默认已支持
eg:
[root@server0 ~]# mkdir /nsd09
[root@server0 ~]# chmod o=--- /nsd09
[root@server0 ~]# ls -ld /nsd09
[root@server0 ~]# su - lisi
[lisi@server0 ~]$ cd /nsd09
-bash: cd: /nsd09: Permission denied
[lisi@server0 ~]$ exit
logout
[root@server0 ~]# setfacl -m u:lisi:rx /nsd09 #设置ACL策略
[root@server0 ~]# getfacl /nsd09 #查看ACL策略
[root@server0 ~]# su - lisi
[lisi@server0 ~]$ cd /nsd09
[lisi@server0 nsd09]$ pwd
[lisi@server0 nsd09]$ exit
logout
[root@server0 ~]#
3.设置acl访问控制策略
• 使用 getfacl、setfacl 命令
– getfacl 文档...
– setfacl [-R] -m u:用户名:权限类别 文档...
– setfacl [-R] -m g:组名:权限类别 文档...
– setfacl [-R] -x u:用户名 文档... #删除指定ACL策略
– setfacl [-R] -b 文档... #删除所有的ACL策略
eg:
[root@server0 ~]# mkdir /nsd10
[root@server0 ~]# setfacl -m u:lisi:rx /nsd10
[root@server0 ~]# setfacl -m u:zhangsan:rwx /nsd10
[root@server0 ~]# setfacl -m u:dc:rwx /nsd10
[root@server0 ~]# setfacl -m u:student:rwx /nsd10
[root@server0 ~]# getfacl /nsd10
[root@server0 ~]# setfacl -x u:dc /nsd10 #单独删除dc的ACL策略
[root@server0 ~]# getfacl /nsd10
[root@server0 ~]# setfacl -b /nsd10 #删除所有的ACL策略
[root@server0 ~]# getfacl /nsd10
4.
acl策略的作用:单独拒绝
eg:
[root@server0 ~]# ls -ld /home/public/
[root@server0 ~]# setfacl -m u:lisi:--- /home/public/
[root@server0 ~]# getfacl /home/public/
来源:CSDN
作者:tian1345
链接:https://blog.csdn.net/tian1345/article/details/103393142