linux 用户权限 SUID、SGID、SBIT...
Linux的特殊权限和应用
- SUID:作用于用户
当文件设置了setuid位后,任何能够执行此文档的用户都有与文件属主相同的权限,即使得任意使用者在执行该文件时,都绑定了文件属主的权限。例如,某个程序为root拥有,又设置了setuid位,那即使是一个普通用户运行该程序,该程序的身份一样是root的身份,可以访问所有只有root可以访问的资源,设置setuid位的程序曾是被攻击的对象。setuid位典型的应用是/usr/bin/passwd,查看该文件权限显示-rwsr-xr-x,这里的s表示设置了setuid位且该文件可由文件属主执行,如果一般用户执行该文件,则在执行过程中可以获得root权限,从而更改用户密码。大写S表示文件本来没有可执行权限并且设置了setuid位
查看SetUID权限:占用原先“所有者”的x权限位。 rws r-x r-x
小写s: 表示原先是具有x权限的
大写S:标识原先没有x权限
chmod u+s 或 u-s /file1
[root@deng-120 /etc]# chmod u+s passwd
[root@deng-120 /etc]# ll passwd
-rwsr--r-- 1 root root 6764 8月 17 18:33 passwd
- SGID:作用于所属组
查看SetUID权限:占用原先“所有者”的x权限位。 rwx r-s r-x
小写s: 表示原先是具有x权限的
大写S:标识原先没有x权限
chmod g+s 或 g-s /file1
作用:继承属性用户组的属性
[root@deng-120 ~]# mkdir aa #创建 aa 的文件夹
[root@deng-120 ~]# ls
drwxr-xr-x 2 root root 6 8月 24 23:04 aa #最原始没有 s 的权限,所属组为 root
[root@deng-120 ~]# chgrp rosen aa/ #更改所属组为 rosen
[root@deng-120 ~]# chmod g+s aa/ #给 aa 加上 s 权限
[root@deng-120 ~]# ll
drwxr-sr-x 2 root rosen 6 8月 24 23:04 aa #拥有 s 权限
[root@deng-120 ~/aa]# touch abc #在aa下创建文件都会继承 aa 文件夹的所属组
[root@deng-120 ~/aa]# ll
-rw-r--r-- 1 root rosen 0 8月 24 23:10 abc
当s权限作用于组的时候,就会起到对应的继承父文件的属性
- Sticky:粘滞位。作用于其他人,只有自己才能删除自己的文件(root除外)
t 权限 :一般用于目录,用于公共的目录。 权限为777的目录
t 占用 x权限的位置
小写t:表示原先是具有x权限
大写T:标识原先是不具有x权限
[root@deng-120 ~]# chmod 777 aa/ #777权限任何人都可以aa文件夹对里面的文件进行创建删除和修改
[root@deng-120 ~]# ll
drwxrwsrwx 2 root rosen 17 8月 24 23:10 aa
[root@deng-120 ~]# chmod o+t aa/ #给aa文件夹加上 t 权限
[root@deng-120 ~]# ll
drwxrwsrwt 2 root rosen 17 8月 24 23:10 aa
#拥有t权限的文件夹,其他普通用户在aa目录下职能对自己创的文件进行删除,对其他文件可以修改但是不能执行删除的操作
如何设置特殊权限
chmod u+s xxx # 设置setuid权限
chmod g+s xxx # 设置setgid权限
chmod o+t xxx # 设置stick bit权限,针对目录
chmod 4775 xxx # 设置setuid权限
chmod 2775 xxx # 设置setgid权限
chmod 1775 xxx # 设置stick bit权限,针对目录
注意:有时你设置了s或t 权限,你会发现它变成了S或T,这是因为在那个位置上你没有给它x(可执行)的权限,这样的话这样的设置是不会有效的,你可以先给它赋上x的权限,然后再给s或t 的权限
特殊权限对我i们linux的文件或者对用户的限制起到了良好的作用,这样更有利于我们的管理维护~~~
还没有评论,来说两句吧...