• 特殊权限


    编辑权限

    • 赋予 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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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权限

    一切代码都是为了生活,一切生活都是调剂
  • 相关阅读:
    C#.NET常见问题(FAQ)-浮点数如何四舍五入
    C#.NET常见问题(FAQ)-方法参数带ref是什么意思
    C#.NET常见问题(FAQ)-list比数组效率低多少
    C#.NET常见问题(FAQ)-如何输出带选项的MessageBox,YESNO
    微软企业库Unity学习笔记
    微软企业库5.0---缓存模块
    学习微软企业库--日志模块
    学习微软企业库存心得--总结
    C#获取网页内容,并且处理正确编码
    C#获取网页内容的三种方式
  • 原文地址:https://www.cnblogs.com/argor/p/13160163.html
Copyright © 2020-2023  润新知