为了账号安全,请及时绑定邮箱和手机立即绑定
  • 11111

    查看全部
  • 11111

    查看全部
  • getfacl 文件名    #查看ACL权限;

    setfacl 选项 文件名    #设定ACL的权限;

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

    setfacl -m u:lw:rx /av

        -m    设定ACL权限;

        -x    删除指定的ACL权限;

        -b    删除所有的ACL权限;


    查看全部
  • 11111

    查看全部
  • 11111

    查看全部
  • 11111

    查看全部
  • dumpe2s -h  /dev/sda5

    查看全部
  • ACL权限

    查看全部
  • 文件就三个权限

    所有者权限 组权限 其他权限 有时候不够用 这时候就需要ACL权限 用来解决用户身份不够的问题

    查看分区ACL权限是否开启

    dumpe2fs -h /dev/sda5


    查看全部
  • chattr命令格式(对root生效)

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

        +        #增加权限 

        -         #删除权限 

        =        #等于某权限

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

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

        chattr +i abc     #给abc文件赋予i权限,不能修改和删除

        lsattr abc            #查看abc文件权限   

        chattr -i abc      #给abc文件取消i权限

        chattr +i 123     #给目录赋予i权限

        lsattr -d 123查看目录123本身的具有attr权限的文件

        lsattr 123查看目录123下的具有attr权限的文件


    文件a权限举例

        mkdir lw

        cd lw 

        vi dt

        chattr dt

        lsattr dt

        vi dt        #不能修改数据

        echo asdasda >> dt

        cat dt

    目录a权限举例

        cd ..

        chatttr +a lw

        lsattr -d lw/

        cd lw

        touch asd

        rm -rf dt        #不能删除

    查看文件系统属性

        lsattr 选项 文件名   查看文件系统属性

        选项:-a 显示所有文件和目录 

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


    查看全部
  • SBIT粘着位作用

        粘着位目前只对目录有效

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

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

    举例:

    root用户

        cd /home/usr1/

        mkdir 123

        chmod 777 123

        cd 123

        touch av

        chmod o+t /home/user1/123/

        touch cangls

    user1用户

        rm -rf cangls 

    设置与取消粘着位

    设置粘着位

        chmod 1755 目录名

        chmod o+t 目录名

    取消粘着位

        chmod 0755 目录名

        chmod o-t 目录名


    补充:

        ll -d /tmp/         #目录默认有SBIT权限


    1.SUID只能对执行文件生效,SGID能对目录和执行文件生效,SBIT只能对目录生效

    2.要赋予SBIT 权限必须给目录普通用户赋予7权限,因此也比较危险。

    3.超级用户赋予SBIT权限: chmod o+t 或者 chmod 1***

    4.目录有SBIT权限后,任何普通用户都可以在目录下新建文件,但是只能删除自己创建的文件,不允许删除其它用户的文件。

    5. /tmp/ 目录默认有SBIT权限


    查看全部
    0 采集 收起 来源:Linux中Sticky BIT

    2019-03-26

  • SetGID针对文件的作用

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

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

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

        SetGID权限只在程序执行过程中有效

        例子 、usr/bin/locate具有SetGID身份

    解释

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

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

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

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

    SetGID针对目录的作用

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

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

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

    举例:

    root用户

        cd /tmp/

        mkdir test

        chmod 777 test 

    user1用户

        cd /tmp/test

        touch cangls

        ll

        chmod 2777 test        #切换到root用户

        touch bols

        ll

    设定SetGID

        chmod g+s 文件名 

        chmod 2755 文件名

    取消SetGID

        chmod g-s 文件名 chmod 0755 文件名


    测试:

        touch abc

        chmod g+s abc

    举例:

        ll /usr/bin/locate

        ll /var/lib/mlocate/mlocate


    查看全部
    1 采集 收起 来源:Linux中SetGID

    2019-03-25

  • 设定SetUID的方法

    4代表SUID

        chmod 4755 文件名

         chmod u+s 文件名

        chmod u-s 文件名    取消某文件的SetUID   (chmod g-s 文件名 //组)

         chmod u+s 文件名    增加某文件的SetUID  (chmod g+s 文件名 //组)

    取消SetUID的方法

        chmod 0755 文件名

        chmod u-s 文件名

    危险的SetUID(尽量少操作SetUID)

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

        用户的密码设置要严格遵守密码三原则:复杂性、易记性、时效性

        实际工作当中应该将默认具有SetUID权限的文件作一列表,定时检查有没有这之外的文件被设置了SetUID权限。

        绝不允许给系统文件赋SUID权限,如chmod 4755 /bin/vi

    定期检查suid和sgid

    #!/bin/bash 

    find / -perm -4000 -o -perm -2000> /tmp/setuid.check    #搜索系统中所有拥有SUID和SGID的文件,并保存到临时目录中 

    for i in $(cat /tmp/setuid.check)     #for循环,每次循环取出临时文件中的文件名赋予变量i

    脚本

    do

        grep $i /home/suid.log> /dev/null    #对比这个文件名是否在模板文件中    临时扫描出的文件名是否在这个模板文件中   把所有输出丢到/dev/null

             if [ "$?" != "0" ]    #检测上一个命令的返回值,如果不为0,证明上一个命令报错

             then

                    echo "$i isn't in listfile!">>/home/suid_log_$(date +%F) 

            #如果文件名不在模板文件中,则输出错误信息,并把报错报错到日志当前日期中

             fi

    done

    rm -rf /tmp/setuid.check

    操作步骤

    vi suid_check.sh

    chmod 755 suid_check.sh

    chmod u+s abc

    ./suid_check.sh

    cat suid_log_........


    查看全部
  • 文件特殊权限

        SetUID          

        SetGID        #UID与GID极不安全    尽量不去修改

        Sticky BIT

    SetUID功能

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

        2.命令执行者要对该程序拥有x(执行)权限(如果当前文件没有执行权限,着会出现大S权限,大S权限是无效的,s=S+x,s才是超级权限。)

        3.命令执行者在执行该程序时获得该程序文件属主身份

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

    设定SetUID方法 

        chmod 4755 文件名

        chmod u+s 文件名

        举例:

        touch abc

        chmod 755 abc        

        ll                            #执行这三条命令后可以看到abc为绿色

       umask            #0022        0第一位是特殊权限 

        chmod 4775 abc    #给abc赋予UID权限  必须是执行文件

        ll                    #该文件变为红色   提示这个文件要小心



        touch bcd

        chmod 4644 bcd    #与abc相比无执行权限   s=S+x

        ll


           

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

        ll /usr/bin/passwd        #可查看passwd详细权限        -rwsr-xr-x.  

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

        ll /bin/cat    #-rwxr-xr-x    无s


    查看全部
  • 授权普通用户可以添加其他用户

        wheris useradd 

        visudo    #sudo赋予普通用户user1添加用户的命令     在最后加上user1 ALL=/usr/sbin/useradd

        sudo /usr/sbin/useradd cangls    #切换到user1用户执行该命令

        cat /etc/passwd    #查看cangls是否添加完成

    授权普通用户可以添加用户密码

        wheris passwd

        visudo    #在最后加上user1 ALL= /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd "", !/usr/bin/passwd root

        sudo -l

        sudo /usr/sbin/passwd cangls

        #授权user1用户设定密码的权限

        #注意:这样设置极不安全,因为user1可以设置root用户密码了,这是不合理的,应该按下面这样写

        user1 ALL= /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd "", !/usr/bin/passwd root

        #说明1:[A-Za-z]* ,这是个正则表达式,passwd后面的跟的用户名包括任何字母,*代表字母可以重复0-N次

        #说明2:!/usr/bin/passwd "",!代表取反,这意味着passwd 后面跟的用户名不能为空,因为为空代表设置自身密码,而user1执行设置密码命令时使用的是root身份

        #说明3:!/usr/bin/passwd root,!代表取反,这意味着passwd后面不能跟root

        #说明4:,后面一定要有空格,没有空格不生效

        #说明5:三段代码顺序不能颠倒

        #原则:sudo赋予的命令越详细,普通用户的权限越小,赋予的越简单,权限越大

        user1 ALL=/bin/vi #不能在visudo里添加该命令。该赋予user1使用vi更改任意文件的权限(甚至包括/etc/shadow 保存用户名密码文件)


    查看全部

举报

0/150
提交
取消
课程须知
1、需要掌握Linux的基本命令 2、需要学习本课程的前置课程《Linux权限管理之基本权限》
老师告诉你能学到什么?
通过本课程的学习,可以掌握Linux中的常用权限命令,包括ACL权限、sudo权限、文件特殊权限和不可改变位权限,并能理解这些权限的应用场景。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!