特殊权限

 

编辑权限

  • 赋予 argor 重启服务器权限
    visudo
    root    ALL=(ALL)       ALL
    argor   ALL=/sbin/shutdown -r now
    View Code

     

     赋予更多权限
    root    ALL=(ALL)       ALL
    argor   ALL=/sbin/shutdown -r now,/usr/sbin/init 6
    View Code

     

  • 查看被赋予的权限
    [argor@argor ~]$ sudo -l
    [sudo] password for argor: 
    Matching Defaults entries for argor on argor:
        !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
        LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
    
    User argor may run the following commands on argor:
        (root) /sbin/shutdown -r now, /usr/sbin/init 6
    View Code

     

 

SUID 

  • 意义:命令的执行者,以文件的所有者身份执行命令(所有组,……,passwd命令拥有的意义,在处理/etc/shadow文件)
  • 范例查看(红底白字显示文件)
    [root@argor argor]# ll /usr/bin/passwd 
    -rwsr-xr-x. 1 root root 27856 Apr  1 11:57 /usr/bin/passwd
    View Code

     
    赋予 suid 权限

    [root@argor argor]# chmod u+s /usr/bin/list
    [root@argor argor]# ll /usr/bin/list
    -rwsr-xr-x. 1 root root 26 Jun  1 19:05 /usr/bin/list
    View Code


    数字形式赋予权限(默认为0,例0755)

    [root@argor argor]# ll /usr/bin/list
    -rwxr-xr-x. 1 root root 26 Jun  1 19:05 /usr/bin/list
    
    [root@argor argor]# chmod 4755 /usr/bin/list
    [root@argor argor]# ll /usr/bin/list
    -rwsr-xr-x. 1 root root 26 Jun  1 19:05 /usr/bin/list
    
    [root@argor argor]# chmod 2755 /usr/bin/list
    [root@argor argor]# ll /usr/bin/list
    -rwxr-sr-x. 1 root root 26 Jun  1 19:05 /usr/bin/list
    
    [root@argor argor]# chmod 1755 /usr/bin/list
    [root@argor argor]# ll /usr/bin/list
    -rwxr-xr-t. 1 root root 26 Jun  1 19:05 /usr/bin/list
    
    [root@argor argor]# chmod 0755 /usr/bin/list
    [root@argor argor]# ll /usr/bin/list
    -rwxr-xr-x. 1 root root 26 Jun  1 19:05 /usr/bin/list
    View Code

    这个例子中既有suid,又有sgid。suid要求有x权限,sgid要求有w权限。都要作用于可执行文件,suid用于对文件权限的升级,sgid用于目录权限的升级(目录和文件)。 
    suid的危险性要高于sudo权限,慎之又慎。要求sgid其实就是要有777权限。

    sbit有个效果,就是自己只能删除自己创建的文件。sgid,sbit使用范例:

    [root@argor argor]# ll -d /tmp
    drwxrwxrwt. 18 root root 4096 Jun 20 05:29 /tmp
    [root@argor argor]# 
    [root@argor argor]# 
    [root@argor argor]# wll locate
    -rwx--s--x. 1 root slocate 40520 Apr 11  2018 /usr/bin/locate
    View Code

     

 

chattr

在形式上可以限制 root 的操作。有效防止误删除。

  • 用法
    设置权限 chattr,查看权限 lsattr(目录用 -d)
    + 增加权限
    -  删除权限
    i  加锁,不能删除文件,不能改内容
    a  在 i 效果的基础上,允许给文件追加内容
    View Code

     

  • 设置 i 属性权限
    作用于普通文件,该文件不允许删除,不允许修改。
    # 设置权限
    # chattr +i ttt
    
    # 查看权限
    # lsattr ttt
    ----i----------- ttt
    
    # 可以正常运行
    # ./ttt 
    1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ens33:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:50:d2:44 brd ff:ff:ff:ff:ff:ff
        inet 192.168.81.134/24 brd 192.168.81.255 scope global noprefixroute dynamic ens33
           valid_lft 5441526sec preferred_lft 5441526sec
        inet6 fe80::aa64:7330:2ee0:ee57/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    ./ttt: line 4: hello: command not found
    ./ttt: line 5: ll: command not found
    
    # 不能修改,也不能删除
    # rm -f ttt
    rm: cannot remove ‘ttt’: Operation not permitted
    View Code

     
    作用于目录,不允许修改、删除目录的内容,也不能删除目录自己

    # 查看目录权限需要一个 d 选项
    [root@argor ~]# lsattr -d test/
    ----i----------- test/
    [root@argor ~]# lsattr test/ttt 
    ---------------- test/ttt
    
    # 不能删除目录的内容(针对目录的修改,删除)
    [root@argor ~]# rm -f test/ttt 
    rm: cannot remove ‘test/ttt’: Permission denied
    
    [root@argor ~]# echo hello > test/hello
    bash: test/hello: Permission denied
    
    [root@argor ~]# mv test/ttt test/vvv
    mv: cannot move ‘test/ttt’ to ‘test/vvv’: Permission denied
    
    [root@argor ~]# rm -fr test/
    rm: cannot remove ‘test/ttt’: Permission denied
    View Code

    针对目录下未设置 i 属性的文件,是可以编辑的。 

  • 设置 a 属性权限
    作用于文件,仅仅可以追加文件内容;
    作用于目录,仅仅可以增加目录中的文件。

 

 

Linux权限

你可能感兴趣的:(特殊权限)