五、Linux学习笔记 -- 权限管理

一、ACL权限

           ①. ACL权限简介与开启

                      1.ACL权限简介

                          

 

                      2.查看分区ACL权限是否开启

                                dumpe2fs -h /dev/sda3         (Default mount options:    user_xattr acl )

                                #dumpe2fs  命令是查询指定分区详细文件系统信息的命令

                                    选项:

                                          -h     仅显示超级快中信息,而不显示磁盘块组的详细信息

                                 df -h     #查看分区使用状况

                      3.临时开启分区ACL权限

                                mount -o remount,acl /

                                #重新挂载根分区,并挂载加入acl权限

                      4.永久开启分区ACL权限

                                vi /etc/fstab(系统开启自动挂载的文件)

                                UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 /  ext4  defaults,acl  1  1

                                #加入acl

                                mount -o remount /

                                #重新挂载文件系统或重启系统,使修改生效

                     

           ②. 查看与设定ACL权限

                     1.查看ACL命令

                              getfacl 文件名

                              #查看acl权限

                      2.设定ACL权限的命令

                               setfacl 选项 文件名

                                选项:

                                       -m        设定ACL权限

                                       -x         删除指定的ACL权限

                                       -b         删除文件夹所有的ACL权限

                                       -d         设定默认ACL权限

                                       -k         删除默认ACL权限

                                       -R         递归设定ACL权限

                                 示例:

                                        useradd zhangsan

                                        useradd lisi

                                        useradd st

                                        groupadd tgroup

                                        mkdir /project

                                        chown root:tgroup /project/

                                        chmod 770 /project/

                                        setfacl -m u:st:rx /project/

                                        #给用户st赋予r-x权限,使用“u:用户名:权限”格式

                        3.给用户组设定ACL权限

                                  groupadd tgroup2

                                  setfacl -m g:tgroup2:rwx projetc/

                                  #为组group2分配ACL权限。使用“g:组名:权限”格式

           ③. 最大有效权限与删除ACL权限

                        1.最大有效权限mask 

                                mask是用来指定最大有效权限的。如果我给用户赋予了ACL权限,是需要和mask的权限“相与”才能得到用户的真正权限

                      

                        2.修改最大有效权限

                                  setfacl -m m:rx 文件名  

                                  #设定mask权限为r-x。使用“m:权限”格式

                        3.删除ACL权限

                                  setfacl -x u:用户名 文件名

                                  #删除指定用户的ACL权限

                                  setfacl -x g:组名 文件名

                                  #删除指定用户组的ACL权限

                                  setfacl -b 文件名

                                  #会删除文件的所有的ACL权限

  

           ④. 默认ACL权限与递归ACL权限

                   

                       1.递归ACL权限

                              递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限。

                              setfacl -m u:用户名:权限 -R 目录

                        2.默认ACL权限

                               默认ACL权限的作用是如果给父目录设定了默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限。

                               setfacl -m d:u:用户名:权限 目录

二、文件特殊权限

           ①. SetUID

                    1.SetUID的功能

                           只有可以执行的二进制程序才能设定SUID权限

                           命令执行者要对该程序拥有x(执行)权限

                           命令执行者在执行该程序是获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)

                           SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

                           passwd命令拥有SetUID权限,所以普通用户可以修改自己的密码

                                      ll /user/bin/passwd

                                      #-rwsr-xr-x.  1  root root  25980 2月 22 2012 /user/bin/passwd

                            cat命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件内容

                                      ll /bin/cat

                                      #-rwxr-xr-x  1  root root 47976 6月  22 2012 /bin/cat

                            

 

                            2.设定SetUID的方法(一般不设)

                                     4代表SUID

                                           chmod 4755 文件名

                                           chmod u+s 文件名

                                      出现S,则表示出错

                            3.取消SetUID的方法

                                      chmod 755 文件名

                                      chmod u-s 文件名

                             4.危险的SetUID

                                      关键目录应严格控制写权限。比如“/”、“/usr”、“/etc”、“/lib”等

                                      用户的密码设置要严格遵守密码三原则

                                      对系统中默认应该具有SetUID权限的文件作一列表,定时检查有没有这之外的文件被设置了SetUID权限

           ②. SetGID

                      1.SetGID针对文件的作用

                              只有可执行的二进制程序才能设置SGID权限

                              命令执行者要对该程序拥有x(执行)权限

                              命令执行在执行程序的时候,组身份升级为该程序文件的属组

                              SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效

                       2.SetGID针对目录的作用

                               普通用户必须对此目录拥有r和x权限,才能进入此目录

                               普通用户在此目录中的有效组会变成此目录的属组

                               若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组

                          示例:

                                ll /usr/bin/locate

                                -rwx--s--x 1 root slocate 35612 8月 24 2010 /usr/bin/locate

                                ll /var/lib/mlocate/mlocate.db

                                -rw-r----- 1 root slocate 1838850 1月 20 04:29 /var/lib/mlocate/mlocate.db

                                /usr/bin/locate是可执行二进制程序,可以赋予SGID

                                执行用户lamp对/usr/bin/locate命令拥有执行权限

                                执行/usr/bin/locate命令时,组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db数据库拥有r权限,所以普通用户可以使用locate命令查询mlocate.db数据库

                                命令结束,lamp用户的组身份返回lamp组

                           3.设定SetGID(一般不用)

                                 2代表SGID

                                       chmod 2755 文件名

                                       chmod g+s 文件名

                            4.取消SetGID

                                     chmod 755 文件名

                                     chmod g-s 文件名

                             

                         

           ③. Sticky BIT

                       1.SBIT粘着位作用

                               粘着位目前只对目录有效

                               普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限

                               如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一旦赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件。

                                示例:

                                        ll -d /tmp/

                                        drwxrwxrwt. 3 root root 4096 12月 13 11:22 /tmp/

                         2.设置与取消粘着位

                                 设置粘着位

                                        chmod 1755 目录名

                                        chmod o+t 目录名

                                  取消粘着位

                                        chmod 777 目录名

                                        chmod o-t 目录名

三、文件系统属性chattr权限(对root用户也有用)

                      echo 内容 >> 文件名

                      #追加内容写入文件

               1.chattr 命令格式

                       chattr [+-=] [选项] 文件或目录名

                         + : 增加权限

                         -  : 删除权限

                          =: 等于某权限

                         选项:

                                i : 如果对文件设置i属性,那么不允许对文件删除、改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,单不允许建立和删除文件。

                                a : 如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除。

          

                 2.查看文件系统属性

                          lsattr 选项 文件名

                          选项:

                                 -a    显示所有文件和目录

                                 -d    若目标是目录,仅列出目录本身的属性,而不是子文件的

四、系统命令sudo权限

               1.sudo权限

                       root把本来只能超级用户执行的命令赋予普通用户执行。

                       sudo的操作对象是系统命令

               2.sudo使用

                        visudo                

                        #实际修改的是/etc/sudoers文件

                         root   ALL=(ALL)      ALL

                        #用户名   被管理主机的地址=(可使用的身份)   授权命令(绝对路径)

                        #%wheel     ALL=(ALL)   ALL

                        #%组名    被管理主机的地址=(可使用的身份)   授权命令(绝对路径)

               3.授权sc用户可以重启服务器

                        visudo

                        sc        ALL=/sbin/shutdown -r now

               4.普通用户执行sudo赋予的命令

                         su - sc

                         sudo -l

                         #查看可用的sudo命令

                         sudo /sbin/shutdown -r now

                         #普通用户执行sudo赋予的命令

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值