5.Linux权限与归属

时光怂恿深爱的人放手 提交于 2019-12-18 02:00:54

一.基本权限

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/
 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!