美文网首页
Day-11linux特殊权限,chattr,lsattr,um

Day-11linux特殊权限,chattr,lsattr,um

作者: 郭文政 | 来源:发表于2019-08-08 17:00 被阅读0次

    1.特殊权限

    特殊权限分为三种:setuid,setgid,sbit

    1)setuid
    • 用户运行起来程序叫做进程,用户用cat命令查看一个文件,看的是这个用户对这个文件有没有权限
      简称suid,可以对二进制文件进行使用,对二进制文件设置suid权限后,普通用户使用该二进制文件对一个文件进行操作时,会使用这个二进制文件属主的身份对文件进行操作。
      可以使用chmod u+s 或者 chmod 4---来设置权限
    [root@oldboy-1 ~] ll /usr/bin/cat
    -rwxr-xr-x. 1 root root 54160 Oct 31  2018 /usr/bin/cat
    [root@oldboy-1 ~]# ll /etc/shadow
    ----------. 1 root root 1692 Aug  8 15:14 /etc/shadow
    
    #密码信息存放在/etc/shadow中,但是对任何人没有权限,除了root外,任何用户不能查看,编辑该文件
    #但是,加了setuid权限之后,普通用户会继承cat命令属主的身份,也就是说,普通用户会以root身份查看该文件,那么就可查看该文件的内容
    
    2)setgid

    setgid,可以对目录进行附加setgid权限,对目录附加setgid权限之后,在其目录下创建的目录或文件默认都将继承上一级目录的属组
    chmod g+s 或者 chmod 2---设置setgid权限

    [root@oldboy-1 ~] chmod g+s test/
    [root@oldboy-1 ~]  ll -d test/
    drwxr-sr-x. 2 root GG 6 Aug  6 17:19 test/
    [root@oldboy-1 ~]  mkdir test/admix
    [root@oldboy-1 ~]  ll -d test/admix/
    drwxr-sr-x. 2 root GG 6 Aug  8 16:11 test/admix/
    #给test目录赋予setgid权限,到test目录下创建的文件或者目录默认属组就是test的属组,这样我们可以实现同一个属组内的文件共享
    
    3)sbit

    sbit是粘连位,对一个目录设置粘连位之后,每个目录自己创建的文件或目录,只能自己删除,别的用户删除不了,并且不能进行编辑(root用户除外)
    chmod o+t 或者chmod 1--- 设置sbit权限

    [root@oldboy-1 home] chmod 1777 test/
    [root@oldboy-1 home]  ll -d test/
    drwxrwsrwt. 3 root GG 19 Aug  8 16:11 test/
    [syy@oldboy-1 test]$ touch file1
    [sg@oldboy-1 test]$ rm -rf file1
    rm: cannot remove ‘file1’: Operation not permitted
    #给test目录设置粘连位之后,syy用户创建了一个文件file1,但是sg用户删除不了,所以,这就是sbit权限的作用
    

    2.高级权限

    chattr可以设置一些权限给目录或者文件,这些权限是高于普通权限的,如果修改之后,也可以对root进行权限限制,chattr 可以使用+ - = 来设置权限

    chattr +a  #可以对文件或者目录使用,a选项可以对文件进行上锁,是文件只能追加,不能做其他的操作,这个命令常用于一些重要的日志文件
    chattr +i    #可以对文件进行上锁,任何人对这个文件不能做任何操作,包括root,这个命令常用于/etc/passwd ,通常公司用户创建足够之后,就不会再允许别人创建用户,可以用chattr+i实现
    lsattr   #查看文件的高级权限
    

    3.umask

    umask是系统创建默认权限的依据,umask涉及到的相关文件/etc/bashrc /etc/profile ~/.bashrc ~/.bash_profile

    if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
        umask 002
    else
        umask 022
    fi
    #如果一个用户的uid大于199 并且 如果用户的属主等于属组,那么umask=002,不然,umask就是022
    

    ps:1)一般文件的权限都是666-022=644
    一般目录的权限都是777-022=755
    2)如果文件的权限有奇数,那么,权限就会加一
    例如 如果umask=033
    那么 666-033=633 后面两位是奇数,就得加一 权限就是644

    3)用umask 后面加值,可以临时的修改umask值

    相关文章

      网友评论

          本文标题:Day-11linux特殊权限,chattr,lsattr,um

          本文链接:https://www.haomeiwen.com/subject/pjsxjctx.html