zoukankan      html  css  js  c++  java
  • 权限管理

    一、权限管理

    1.ACL权限

    ACL权限简介与开启

    ACL权限是为了解决所有者,所属组,其他人三个权限用户身份分配不足的问题

    • dumpe2fs -h [分区]
      dumpe2fs命令是查询指定分区详细文件系统信息的命令

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

    • 临时开启分区ACL权限
      mount -o remount,acl / 重新挂载根分区,并挂载加入acl权限

    • 永久开启分区ACL权限

      • vim /etc/fstab (是系统开机自动挂载的文件)
        UUID=59d9ca7b-4f39-4c0c-9334-c56c182076b5 / ext4 defaults 1 1,在ext4后面的 defaults加,acl 成为,UUID=59d9ca7b-4f39-4c0c-9334-c56c182076b5 / ext4 defaults,acl 1 1,然后输入:mount -o remount /,重新挂载文件系统或重启系统,使修改生效。

      • 注意:Linux现在一般所有分区全部默认开启ACL,不用修改配置

    ACL权限查看与设定

    • getfacl 文件名 ----------查看ACL命令 查看ACL权限
    • setfacl [选项] 文件名
      • -m:设定ACL权限
        例子:
        • setfacl -m u:st:rx /tmp/project -----给用户设定ACL权限读和操作,使用u:用户名:权限
        • setfacl -m g:tg1:rwx /tmp/project -----给用户组设定ACL权限读,写和操作g:组名:权限
      • -x:删除指定的ACL权限
      • -b:删除所有的ACL权限
      • -d:设定默认的ACL权限
      • -k:删除默认ACL权限
      • -R:递归设定ACL权限

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

    • 最大有效权限mask
      mask是用来指定最大有效权限的。如果给用户赋予了ACL权限,是需要和mask 的权限“相与”才能得到用户的真正权限
    • setfscl -m m:rx 文件名
      设定mask权限为r-x。使用“m:权限”格式
      目的:为了防止用户或者用户组给的权限过高,提前设定
    • 权限的删除
      • setfacl -x u:用户名 文件名 删除指定用户的ACL权限
      • setfacl -x g:组名 文件名 删除指定用户组的ACL权限
      • setfacl -b 文件名 会删除文件的所有ACL权限

    ACL权限默认与递归

    • 递归ACL权限
      递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限
      命令:setfacl -m u:用户名:权限 -R 目录名 -R必须在这个位置

    • 默认ACL权限
      默认ACL权限的作用是如果给父目录设定默认ACL权限,那么父目录中所有建的子文件和子目录都会继承父目录的ACL权限
      命令:

    • Setfacl -m d:u:用户名:权限 目录名 可以在权限后面加-R来进行递归

    2.文件特殊权限

    SetUID

    • 只有可以执行的二进制程序才能设定SUID权限,普通文件或者目录没有意义

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

    • 命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

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

      • 设定SetUID的方法

        • chmod 4755 文件名 4代表SUID权限
        • chmod u+s 文件名
      • 取消SetUID的方法

        • chmod 755 文件名

        • chmod u-s 文件名

          如果用户对文件没有执行权限,就会报错,此时给他加特殊权限,就会显示大S

    • 危险的SetUID
      关键目录应当严格控制写权限。比如:“/”,“/usr”等
      用户的密码设置要严格遵守密码三原则
      对系统中默认应该具有SetUID权限的文件作一列表,定时检查有没有这之外的文件被设置了SetUID权限

    SetGID

    • SetGID针对文件

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

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

      • 命令执行在执行程序的时候,组身份升级为该程序文件的所属组,SetGID权限同只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效

        例子:
        locate 命令拥有SetGID权限,所以普通用户可以使用locate来查询

        • 设定SetUID的方法
          • chmod 2755 文件名 2代表SGID权限
          • chmod g+s 文件名
        • 取消SetUID的方法
          • chmod 755 文件名
          • chmod g-s 文件名
    • SetGID针对目录

      • 普通用户必须对此目录拥有r和x权限,才能进入此目录
      • 普通用户在此目录中的有效组会变成此目录的所属组
      • 若普通用户对此目录拥有w权限时,新建的文件的默认所属组是这个目录的所属组

    Sticky BIT

    SBIT粘着位作用

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

    设定粘着位的方法

    • chmod 1755 目录名 1代表粘着位
    • chmod o+t 目录名

    取消粘着位的方法

    • chmod 755 目录名
    • chmod o-t 目录名

    3.文件系统属性chattr权限

    chattr命令格式

    • chattr [+ - =] [选项] 文件名或者目录名
      • +:增加权限
      • -:删除权限
      • =:等于某权限
      • i:如果对文件设置i属性,那么不允许对文件进行删除,改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,但是不允许建立和删除文件(对root也生效)
      • a:如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除或者修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除文件

    查看文件系统属性

    • lsattr [选项] 文件名
      • -a:显示所有文件和目录
      • -d:若目标是目录,仅列出目录本身的属性,而不是子文件的

    4.系统命令sudo权限

    sudo权限

    • root把本来只能超级用户执行的命令赋予普通用户执行
    • sudo的操作对象是系统命令

    sudo使用

    • visudo 实际修改的是/etc/sudoers文件
      • root ALL=(ALL) ALL
        用户名 被管理主机的地址=(可使用身份) 授权命令(绝对路径)
      • %wheel ALL=(ALL) ALL
        %组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
        被管理主机的地址:本机IP或者ALL,限制的不是来源IP,而是访问IP
    例子:
    授权用户可以可以重启服务器
    visudo
    yangyang ALL= /sbin/shutdown –r now
    
    sudo -l 查看可用的sudo命令
    sudo [授权命令的绝对路径] 普通用户执行sudo赋予的命令
    例子:
    sudo /sbin/shutdown -r now
    
  • 相关阅读:
    iOS----------Runtime 获取属性列表 方法列表
    iOS----------四舍五入(只舍不入)
    iOS----------时间戳与NSDate
    iOS----------Apple id如何关闭双重认证?
    iOS----------最全Emoji编码
    iOS----------Bad Gateway
    iPhone手机怎么投影到MacPro上
    iOS----------use_frameworks!
    Win 常用快捷键
    电脑硬件介绍
  • 原文地址:https://www.cnblogs.com/maqian/p/14308422.html
Copyright © 2011-2022 走看看