linux文件的特殊权限

系统管理员 2022-05-15 07:10 329阅读 0赞
  • 1.suid,sgid,sticky介绍
  • 2.特殊权限对应的数值
  • 3.实例

    • 3.1、suid权限
    • 3.2、sgid权限
    • 3.3、stickybit权限
  • 4.文件扩展ACL

    • 4.1给文件设置acl权限
    • 4.2给目录设置acl权限
    • 4.3去掉acl权限
  • 5.chattr与lsattr

    • 5.1命令介绍
    • 5.2用法与参数
    • 5.3例子

1.suid,sgid,sticky介绍

  • a)、SUID:
    限定:只能设置在二进制可执行程序上面,对目录设置无效。
    功能:程序运行时的权限从可执行这变更成程序所有者。
  • b)、SGID:
    限定:既可以给二进制可执行程序设置,也可以对目录设置。
    功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会
    继承上级目录的所属组。
  • c)、Stickybit:
    限定:只作用于目录
    功能:目录下创建的文件只有root、文件的创建者、目录所有者才能删除

2.特殊权限对应的数值
















SUID SGID Stickybit
u+s或u=4 g+s或g=2 o+t或o=1

3.实例

3.1、suid权限

  1. passwd就是一个设置了suid的二进制命令,passwd修改密码是通过
  2. 修改/etc/shadow文件。但shadow文件只有root才有权限修改,那普通
  3. 用户是怎么修改自己密码呢?
  4. [root@zabbix-01 ~]# ll /etc/shadow
  5. ----------. 1 root root 860 Aug 26 17:02 /etc/shadow
  6. [root@zabbix-01 ~]# ll /usr/bin/passwd
  7. -rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd
  8. ==》我们可以看到passwd二进制命令设置了suid,使得用户在执行passwd
  9. 的时候成为所有者(root),然后修改密码
  10. =================================================================
  11. 普通用户查看shadow文件
  12. [test@zabbix-01 test]$ whoami
  13. test
  14. [test@zabbix-01 test]$ cat /etc/shadow
  15. cat: /etc/shadow: Permission denied
  16. cat设置suid
  17. [root@zabbix-01 ~]# ll /usr/bin/cat
  18. -rwxr-xr-x. 1 root root 54048 Nov 20 2015 /usr/bin/cat
  19. [root@zabbix-01 ~]# chmod u+s /usr/bin/cat
  20. [root@zabbix-01 ~]# ll /usr/bin/cat
  21. -rwsr-xr-x. 1 root root 54048 Nov 20 2015 /usr/bin/cat
  22. 测试:
  23. [test@zabbix-01 test]$ cat /etc/shadow
  24. root:$6$uXsaeXuHfsVliHd9$XDUtm2BfXIwxhtU.sZi65SP9Bbb/oQpc55VeDeR7up4hC/nzZhto71bxllEET.7KsagFd6FQXOJyUo4JMKdwh1::0:99999:7:::
  25. bin:*:16659:0:99999:7:::
  26. daemon:*:16659:0:99999:7:::

3.2、sgid权限

  1. 使用root创建test目录
  2. [root@zabbix-01 ~]# mkdir /test
  3. [root@zabbix-01 ~]# ll -d /test/
  4. drwxr-xr-x. 2 root root 6 Aug 26 18:00 /test/
  5. 修改test目录的所属组为test。并设置sguid
  6. [root@zabbix-01 ~]# chmod g+s /test/
  7. [root@zabbix-01 ~]# chown :test /test/
  8. [root@zabbix-01 ~]# ll -d /test/
  9. drwxr-sr-x. 2 root test 6 Aug 26 18:00 /test/
  10. test下创建文件
  11. [root@zabbix-01 ~]# touch /test/{a,b,c}.txt
  12. 查看权限(所有文件的所属组都会继承test的所属组)
  13. [root@zabbix-01 ~]# ll /test/
  14. total 0
  15. -rw-r--r--. 1 root test 0 Aug 26 18:01 a.txt
  16. -rw-r--r--. 1 root test 0 Aug 26 18:01 b.txt
  17. -rw-r--r--. 1 root test 0 Aug 26 18:01 c.txt

3.3、stickybit权限

  1. 使用root创建目录与文件并设置权限
  2. [root@zabbix-01 ~]# mkdir /test
  3. [root@zabbix-01 ~]# chmod -R 777 /test
  4. [root@zabbix-01 ~]# touch /test/aaa
  5. 使用普通用户删除
  6. [test@zabbix-01 ~]$ whoami
  7. test
  8. [test@zabbix-01 ~]$ rm -rf /test/aaa
  9. [test@zabbix-01 ~]$ ls /test/
  10. 对目录设置stickybit
  11. [root@zabbix-01 ~]# chmod o+t /test/
  12. [root@zabbix-01 ~]# touch /test/aaa
  13. 测试
  14. [test@zabbix-01 ~]$ rm -rf /test/aaa
  15. rm: cannot remove ‘/test/aaa’: Operation not permitted

4.文件扩展ACL

4.1给文件设置acl权限

  1. 例:设置用户test对文件/test/aaa拥有rwx权限,test不属于/test/aaa的所属主和组,test其他用户other,但不能给其他用户有拥有rwx权限。只能test用户拥有(例外)
  2. 查看aaaacl权限
  3. [root@zabbix-01 ~]# getfacl /test/aaa
  4. getfacl: Removing leading '/' from absolute path names
  5. # file: test/aaa
  6. # owner: root
  7. # group: root
  8. user::rw-
  9. group::r--
  10. other::r--
  11. 设置acl权限
  12. [root@zabbix-01 ~]# setfacl -m u:test:rwx /test/aaa
  13. [root@zabbix-01 ~]# getfacl /test/aaa
  14. getfacl: Removing leading '/' from absolute path names
  15. # file: test/aaa
  16. # owner: root
  17. # group: root
  18. user::rw-
  19. user:test:rwx
  20. group::r--
  21. mask::rwx
  22. other::r--
  23. [root@zabbix-01 ~]# ll /test/aaa
  24. -rw-rwxr--+ 1 root root 0 Aug 26 18:20 /test/aaa

4.2给目录设置acl权限

  1. [root@zabbix-01 ~]# getfacl /test/
  2. getfacl: Removing leading '/' from absolute path names
  3. # file: test/
  4. # owner: root
  5. # group: root
  6. # flags: --t
  7. user::rwx
  8. group::rwx
  9. other::rwx
  10. [root@zabbix-01 ~]# setfacl -m d:u:test:rwx /test
  11. [root@zabbix-01 ~]# getfacl /test/
  12. getfacl: Removing leading '/' from absolute path names
  13. # file: test/
  14. # owner: root
  15. # group: root
  16. # flags: --t
  17. user::rwx
  18. group::rwx
  19. other::rwx
  20. default:user::rwx
  21. default:user:test:rwx
  22. default:group::rwx
  23. default:mask::rwx
  24. default:other::rwx

4.3去掉acl权限

  1. 去掉的单个权限
  2. [root@zabbix-01 ~]# setfacl -x u:test /test/aaa(-x -r -w
  3. 去掉所有
  4. [root@zabbix-01 ~]# setfacl -b u:test /test/aaa

5.chattr与lsattr

5.1命令介绍

  • 有时候发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。
  • chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux系统都是2.6以上内核了。
  • 通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

5.2用法与参数

  1. chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files
  2. 最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的
  3. 属性。
  4. + :在原有参数设定基础上,追加参数。
  5. - :在原有参数设定基础上,移除参数。
  6. = :更新为指定参数设定。
  7. A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
  8. S:硬盘I/O同步选项,功能类似sync
  9. a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
  10. c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
  11. d:即no dump,设定文件不能成为dump程序的备份目标。
  12. i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
  13. j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
  14. s:保密性地删除文件或目录,即硬盘空间被全部收回。
  15. u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion
  16. 各参数选项中常用到的是aia选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

5.3例子

  1. 防止系统中某个关键文件被修改
  2. [root@zabbix-01 ~]# chattr +i a
  3. [root@zabbix-01 ~]# lsattr a
  4. ----i----------- a
  5. [root@zabbix-01 ~]# rm -rf a
  6. rm: cannot remove a’: Operation not permitted
  7. [root@zabbix-01 ~]# echo "aa" > a
  8. -bash: a: Permission denied
  9. 去掉i权限
  10. [root@zabbix-01 ~]# chattr -i a
  11. [root@zabbix-01 ~]# rm -rf a

发表评论

表情:
评论列表 (有 0 条评论,329人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Linux特殊权限

    Linux下的文件权限 前面我们提到了关于文件的三个重要权限,那就是r、w、x这三个读、写、可执行的权限,是不是文件系统只有这三个权限呢?答案当然是否定的,首先,我们来看

    相关 文件特殊权限

    1. SetUID 只有可以执行的二进制文件才能设定SUID权限。 命令的执行者要对该可执行文件拥有x(执行)权限。 命令的执行者在执行该文件时,身份会