当前位置:首页 > 有云笔记 > ENGINEER > 正文内容

linux基本权限和归属 、 附加权限 、 ACL策略管理( SUID、SGID、Sticky)!

小白3年前 (2021-12-09)ENGINEER277120

linux基本权限和归属 、 附加权限 、 ACL策略管理( SUID、SGID、Sticky)!

linux基本权限和归属 、 附加权限 、 ACL策略管理( SUID、SGID、Sticky)!

  • 描述递归修改文件或目录所有者和所属组的命令格式

  • 描述递归修改文件或目录权限的命令格式

  • 描述递归修改文件或目录ACL权限的命令格式

  • 描述设置SUID、SGID、Sticky权限的命令格式

参考答案

步骤一:递归修改文件或目录所有者和所属组的命令格式是什么

# chown  -R   用户名:组名     文件或目录名或者
# chown  -R   用户名.组名     文件或目录名

步骤二:递归修改文件或目录权限的命令格式是什么

# chmod  -R   数字格式     文件或目录名
# chmod  -R   字符格式     文件或目录名

步骤三:描述递归修改文件或目录ACL权限的命令格式

# setfacl  -R   -m   u:用户名:权限     文件或目录名
# setfacl  -R   -m   g:组名:权限     文件或目录名

步骤四: 描述设置SUID、SGID、Sticky权限的命令格式

# chmod   u+s    文件名
# chmod   g+s    目录名
# chmod   o+t    文件或目录名

• 访问权限

– 读取:允许查看内容-read

– 写入:允许修改内容-write

– 可执行:允许运行和切换-excute

  对于文本文件:

       r读取权限:cat、less、grep、head、tail

       w写入权限:vim、> 、 >>

       x可执行权限:Shell与Python


• 归属关系

– 所有者(属主):拥有此文件/目录的用户-user

– 所属组(属组):拥有此文件/目录的组-group

– 其他用户:除所有者、所属组以外的用户-other

   zhangsan(所有者)    zhangsan(所属组)      1.txt

 • 执行 ls  -l或者ls  -ld 命令查看

      以-开头:文本文件

      以d开头:目录

      以l开头:快捷方式     

[root@localhost ~]# ls -ld   /etc/
[root@localhost ~]# ls -l     /etc/passwd
[root@localhost ~]# ls -ld   /root
[root@localhost ~]# ls -ld   /tmp         #有附加权限
[root@localhost ~]# ls -l    /etc/shadow
 
[root@localhost ~]# useradd  zhangsan
[root@localhost ~]# ls -ld   /home/zhangsan

一个用户具备的权限:

1.判断该用户针对此数据,所处的身份

2.查看相应身份权限位置

 三、修改权限

• chmod命令

– 格式:chmod   [ugoa] [+-=][rwx]    文件...

• 常用命令选项

– -R:递归修改权限

 

]# mkdir   /nsd10
]# ls   -ld   /nsd10
]# chmod   u-w    /nsd10    #所有者去掉w权限
]# ls -ld    /nsd10
]# chmod   u+w  /nsd10     #所有者加上w权限
]# ls  -ld   /nsd10
]# chmod   g+w   /nsd10     #所属组加上w权限
]# ls   -ld    /nsd10
]# chmod    g=r    /nsd10    #所属组重新定义权限
]# ls    -ld    /nsd10
]# chmod    a=rwx    /nsd10   #a表示所有人
]# ls   -ld     /nsd10
]# chmod  u=---,g=rx,o=rwx     /nsd10
]# ls   -ld   /nsd10


-R:递归修改权限

[root@localhost ~]# mkdir -p /opt/aa/bb/cc
[root@localhost ~]# chmod -R o=--- /opt/aa
[root@localhost ~]# ls -ld /opt/aa
[root@localhost ~]# ls -ld /opt/aa/bb
[root@localhost ~]# ls -ld /opt/aa/bb/cc


Linux中判断用户具备的权限:      

1. 查看用户,对于该数据所处的身份,顺序所有者>所属组>其他人,原则是匹配及停止

2. 查看相应身份的权限位     

 

对于目录:

   读取权限:查看目录内容

   写入权限:能够创建、删除、修改等目录的内容(无法修改目录本身)

   执行权限:能够cd切换到此目录下

案例1:设置基本权限

1)以root身份新建/nsddir1/目录,在此目录下新建readme.txt文件

[root@localhost ~]# mkdir  /nsddir1
[root@localhost ~]# echo  123456   >  /nsddir1/readme.txt
[root@localhost ~]# cat   /nsddir1/readme.txt

2)使用户zhangsan能够修改readme.txt文件内容

[root@localhost ~]# chmod  o+w  /nsddir1/readme.txt

3)使用户zhangsan不可以修改readme.txt文件内容

[root@localhost ~]# chmod  o-w  /nsddir1/readme.txt

4)使用户zhangsan能够在此目录下创建/删除子目录

[root@localhost ~]# chmod  o+w   /nsddir1/

5)调整此目录的权限,使任何用户都不能进入,然后测试用户zhangsan是否还能修改readme.txt(测试结果不能,对父目录没有权限)

[root@localhost ~]# chmod  a-x  /nsddir1/

6)为此目录及其下所有文档设置权限 rwxr-x---

[root@localhost ~]# chmod -R u=rwx,g=rx,o=--- /nsddir1/


修改归属关系

• chown命令 

– chown  属主  文件...

– chown  属主:属组  文件...

– chown  :属组  文件...

• 常用命令选项

– -R:递归修改归属关系

 

]# mkdir  /nsd15
]# ls -ld   /nsd15
]# groupadd   tmooc        #创建组tmooc
 
]# chown   lisi:tmooc   /nsd15    #修改所有者与所属组
]# ls -ld /nsd15
 
]# chown   zhangsan   /nsd15    #仅修改所有者
]# ls -ld /nsd15
 
]# chown   :root  /nsd15     #仅修改所属组
]# ls  -ld   /nsd15


案例2:归属关系练习        

1)利用root的身份新建/tarena目录,并进一步完成下列操作 

[root@localhost ~]# mkdir  /tarena

2)将/tarena属主设为gelin01,属组设为tmooc组  

[root@localhost ~]# useradd    gelin01 
[root@localhost ~]# groupadd   tmooc
[root@localhost ~]# chown   gelin01:tmooc    /tarena

3)使用户gelin01对此目录具有rwx权限,除去所有者与所属组之外的用户对此目录无任何权限

[root@localhost ~]# chmod  o=---  /tarena

4)新建用户gelin02,此用户能进入、查看此目录

[root@localhost ~]# useradd  gelin02
[root@localhost ~]# gpasswd  -a  gelin02  tmooc

5)将gelin01加入tmooc组,将tarena目录的权限设为450,测试gelin01用户能否进入此目录

[root@localhost ~]# gpasswd  -a  gelin01  tmooc 
[root@localhost ~]# chmod  450  /tarena





权限利用数字方式表示

• 权限位的8进制数表示

– r、w、x分别对应4、2、1,后3组分别求和



分组

User权限

Group权限

Other权限

字符

r

w

x

r

-

x

r

-

x

数字

4

2

1

4

0

1

4

0

1

求和

7

5

5


[root@localhost ~]# mkdir   /nsd14
[root@localhost ~]# ls  -ld   /nsd14
 
[root@localhost ~]# chmod   700    /nsd14
[root@localhost ~]# ls   -ld   /nsd14
 
[root@localhost ~]# chmod   007   /nsd14
[root@localhost ~]# ls   -ld   /nsd14
 
[root@localhost ~]# chmod    750    /nsd14
[root@localhost ~]# ls   -ld   /nsd14
[root@localhost ~]# chmod    755    /nsd14
[root@localhost ~]# ls   -ld   /nsd14


附加权限(特殊权限)

• 粘滞位,Sticky Bit 权限

– 占用其他人(Other)的 x 位

– 显示为 t 或 T,取决于其他人是否有 x 权限

– 适用于目录,用来限制用户滥用写入权

– 在设置了t权限的文件夹下,即使用户有写入权限,也不能删除或改名其他用户文档 


[root@localhost ~]# mkdir   /home/public
[root@localhost ~]# chmod  777   /home/public
[root@localhost ~]# ls   -ld   /home/public
[root@localhost ~]# chmod  o+t  /home/public
[root@localhost ~]# ls  -ld  /home/public

• Set GID权限(SGID)

– 占用属组(Group)的 x 位

– 显示为 s 或 S,取决于属组是否有 x 权限

– 对目录有效

– 在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份   

]# mkdir   /nsd18
]# chown   :tmooc   /nsd18
]# ls  -ld   /nsd18
 
]# mkdir  /nsd18/abc01
]# ls -ld   /nsd18/abc01
 
]# chmod  g+s  /nsd18     #赋予SGID特殊权限
]# ls -ld  /nsd18
 
]# mkdir   /nsd18/abc02
]# ls -ld  /nsd18/abc02


ACL策略管理

 

• 文档归属的局限性:

– 任何人只属于三种角色:属主、属组、其他人

– 针对特殊的人实现更精细的控制

• acl访问策略作用:

– 能够对个别用户、个别组设置独立的权限

– 大多数挂载的EXT3/4、XFS文件系统默认已支持

• setfacl命令

– 格式:setfacl [选项] u:用户名:权限  文件...

        setfacl [选项] g:组名:权限  文件...

• 常用命令选项

– -m:修改ACL策略

– -x:清除指定的ACL策略

– -b:清除所有已设置的ACL策略

– -R:递归设置ACL策略


]# mkdir    /nsd19
]# chmod    770   /nsd19       
]# ls   -ld   /nsd19
 
]# su  -   dc
]$ cd     /nsd19
-bash: cd: /nsd19: 权限不够
]$ exit
 
]# setfacl   -m   u:dc:rx    /nsd19    #单独赋予dc权限
]# getfacl   /nsd19                         #查看ACL策略
]# su  -   dc 
]$ cd    /nsd19
]$ pwd
]$ exit


ACL命令的练习:

]# mkdir  /nsd22
]# setfacl  -m  u:dc:rx    /nsd22
]# setfacl  -m  u:zhangsan:rwx    /nsd22
]# setfacl  -m  u:lisi:rx     /nsd22
]# setfacl  -m  u:gelin01:rwx    /nsd22
]# getfacl    /nsd22
 
]# setfacl   -x   u:zhangsan    /nsd22#删除指定用户ACL
]# getfacl   /nsd22
 
]# setfacl   -x   u:dc    /nsd22    #删除指定用户ACL
]# getfacl   /nsd22
]# setfacl   -b   /nsd22    #清除目录所有ACL策略
]# getfacl   /nsd22

补充内容

ACL策略-黑名单的使用(单独拒绝某些用户)

]# setfacl  -m   u:lisi:---    /home/public/
]# getfacl   /home/public/


附加权限SUID权限

占用属主(User)的 x 位

显示为 s 或 S,取决于属主是否有 x 权限

仅对可执行的程序有意义

当其他用户执行带SUID标记的程序时,具有此程序属主的身份和相应权限



linux基本权限和归属 、 附加权限 、 ACL策略管理( SUID、SGID、Sticky)!

 









[root@localhost ~]# which mkdir
/usr/bin/mkdir
[root@localhost ~]# /usr/bin/mkdir   /opt/abc01
[root@localhost ~]# ls /opt/
[root@localhost ~]# cp  /usr/bin/mkdir   /usr/bin/hahadir
[root@localhost ~]# ls -l /usr/bin/hahadir
[root@localhost ~]# /usr/bin/hahadir   /opt/abc02
[root@localhost ~]# ls /opt/
 
[root@localhost ~]# chmod  u+s  /usr/bin/hahadir 
[root@localhost ~]# ls -l  /usr/bin/hahadir
[root@localhost ~]# su - zhangsan
[zhangsan@localhost ~]$ /usr/bin/mkdir   zs01
[zhangsan@localhost ~]$ ls  -l
[zhangsan@localhost ~]$ /usr/bin/hahadir zs02
[zhangsan@localhost ~]$ ls -l


文件的特殊权限SUID、SGID、SBIT用数字表示分别是:4、2、1

  SUID作用于文件、SGID作用于文件和目录、SBIT作用于目录

linux基本权限和归属 、 附加权限 、 ACL策略管理( SUID、SGID、Sticky)!

文件/目录的默认权限

• 新建文件/目录的默认权限

– 一般文件默认均不给 x 执行权限

– 其他取决于 umask(权限掩码) 设置

– 新建目录默认权限为755

– 新建文件默认权限为644

[root@localhost ~]# umask 
0022
[root@A ~]# umask -S
u=rwx,g=rx,o=r

over

linux基本权限和归属 、 附加权限 、 ACL策略管理( SUID、SGID、Sticky)!  您阅读本篇文章共花了: 

分享到:

    扫描二维码推送至手机访问。

    版权声明:本文由有云转晴发布,如需转载请注明出处。

    本文链接:https://yyzq.eu.org/?id=21

    标签: Linux
    分享给朋友:

    发表评论

    访客

    ◎欢迎参与讨论,请在这里发表您的看法和观点。