• (十三)Linux命令大全:权限管理


    1.ACL权限

        1).ACL权限简介与开启
            ①.
            ②.查看分区ACL权限是否开启
                dumpe2fs -h /dev/sda3【dumpe2fs命令是查询指定分区详细文件系统信息的命令,-h:仅显示超级块中信息,而不显示磁盘块组的详细信息】
            ③.临时开启分区ACL权限
                mount -o remount,acl /【重新挂载根分区,并挂载加入acl权限】
            ④.永久开启分区ACL权限
                vim /etc/fstab【进入编辑模式,UUID=asdqq-qweqwe-qweqwe-qweqew-qweqwe2131123 / ext4 defaults,acl 1 1(加入acl)】
                mount -o remount /【重新挂载文件系统,使修改生效】
        2).查看与设定ACL权限
            ①.查看ACl命令
                getfacle 文件或目录名【查看acl权限】
            ②.设定ACL权限的命令(setfacl 选项 文件名或目录名称)
                eg: setfacl -m u:用户名 文件名【设定指定用户的ACl权限】
                      setfacl -m g:组名    文件名【设定指定用户组的ACl权限】
                -m:设定ACl权限(u:用户名:权限)
                -x:删除指定的ACl权限
                -b:删除所有的ACl权限
                -d:设定默认ACL权限
                -k:删除默认ACL权限
                -R:递归设定ACL权限
        3).最大有效权限与删除ACL权限
            ①.最大有效权限mask
                mask是用来指定最大有效权限的.如果我给用户赋予了ACL权限,是需要和mask的权限"相与"才能得到用户的真正权限
                setfacl -m m:rx 文件名【修改最大有效权限,设定mask权限为r-x.使用"m:权限"格式】
            ②.删除ACL权限
                setfacl -x u:用户名 文件名【删除指定用户的ACl权限】
                setfacl -x g:组名 文件名【删除指定用户组的ACl权限】
                setfacl -b 文件名【会删除文件的所有的ACL权限】
        4).默认ACL权限和递归ACL权限
            ①.递归ACL权限
                递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACl权限
                setfacl -m u:用户名:权限 -R 文件名
            ②.默认ACL权限
                默认ACl权限的作用是如果给父目录设定了默认ACl权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限.
                setfacl -m d:u:用户名:权限 文件名
    

    2.文件特殊权限

        1).SetUID
            ①.SetUID的功能
                >只有可以执行的二进制程序才能设定SUID权限
                >命令执行者要对该程序拥有x(执行)权限
                >命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
                >SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效.
                >passwd命令拥有SetUID权限,所以普通可以修改自己的密码[ll /usr/bin/passwd]
                >cat命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件[ll /bin/cat]
            ②.设定SetUID的方法
                >4代表SUID[chmod 4755 文件名,chmod u+s 文件名]
            ③.取消SetUID的方法
                >chmod 755 文件名
                >chmod u-s 文件名
            ④.危险的SetUID
                >关键目录应严格控制写权限.比如"/"、"/usr"等
                >用户的密码设置要严格遵守密码的三原则
                >对系统中默认应该具有SetUID权限的文件做一列表,定时检查有没有这之外的文件被设置了SetUID权限.
        2).SetGID
            ①.SetGID针对文件的作用
                >只有可执行的二进制程序才能设置SGID权限
                >命令执行者要对该程序拥有x(执行)权限
                >命令执行在执行程序的时候,组身份升级为该程序文件的属组.
                >SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效.
                >/usr/bin/locate是可执行二进制程序,可以赋予SGID.
                >执行用户lamp对/usr/bin/locate命令拥有执行权限.
                >执行/usr/bin/locate命令时,组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db数据库拥有r权限,所以普通用户可以使用locate命令,查询mlocate.db数据库.
                >命令结束,lamp用户的组身份返回为lamp组.
            ②.SetGID针对目录的作用
                >普通用户必须对此目录拥有r和x权限,才能进入此目录.
                >普通用户在此目录中的有效组会变成此目录的属组.
                >若普通用户对此目录拥有w权限时,新建的文件默认(文件所属组是可以改变的)属组是这个目录的属组.
            ③.设定SetGID
                >2代表SGID[chmod 2755 文件名,chmod g+s 文件名]
            ④.取消SetGID
                >chmod 755 文件名
                >chmod g-s 文件名
        3).Sticky BIT
            ①.SBIT粘着位作用
                >粘着位目录只针对目录有效
                >普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限.
                >如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件.一但赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件.
            ②.设置与取消粘着位
                >设置粘着位
                    chmod 1775 目录名
                    chmod o+t 目录名
                >取消粘着位
                    chmod 777 目录名
                    chmod o-t 目录名
    

    3.文件系统属性chattr权限

        1).chattr命令格式
            chattr [+-=][选项] 文件或目录名【+:增加权限,-:删除权限,=:等于某权限】
                选项:>i:如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件.  
                        >a:如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除.
        2).查看文件系统属性
            lsattr 选项 文件名【-a:显示所有文件和目录,-d:若目标是目录,仅列出目录本身的属性,而不是子文件的】
    

    4.系统命令sudo权限

        1).sudo权限
            >root把本来只能超级用户执行的命令赋予普通用户执行.
            >sudo的操作对象是系统命令.
        2).sudo使用
            >visudo【实际修改的是/etc/sudoers文件】
                root ALL=(ALL) ALL
                #用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
                %whell ALL=(ALL) ALL
                #%组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
        3).授权sc用户可以重启服务器
            >visudo【进入vim编辑模式】
                sc ALL=/sbin/shutdown -r now【例】
        4).普通用户执行sudo赋予的命令(不建议给普通用户授权vim这样的工具权限)
            sudo -l【查看可用的sudo命令】
            sudo /sbin/shutdown -r now【普通用户执行sudo赋予的命令】
  • 相关阅读:
    JeePlus:代码结构
    JeePlus:项目部署
    JeePlus:Maven 安装配置
    JeePlus:目录
    框架-Java:JeePlus
    Java-JSP:EL表达式
    Template-FreeMarker:模板开发指南
    Template-FreeMarker:什么是 FreeMarker?
    FreeMarker:
    Template-FreeMarker:目录
  • 原文地址:https://www.cnblogs.com/everyingo/p/12791463.html
Copyright © 2020-2023  润新知