2.19 特殊权限set_gid

2022-01-06 13:55:47 浏览数 (1)

set_gid

  • set_gid(s):可作用于文件(二进制可执行文件)和目录。
  • 相当于set_gid 设置group组的权限位。
  • 可以使用chmod g (-) 【文件名/目录名】 来设置权限。
  • 也就是将标志s加到gid的x标志位,sgid用在目录上最多。

set_gid作用

代码语言:javascript复制
- set_gid作用在文件上时,和set_uid效果一致,会使普通用户临时拥有所属组的身份
代码语言:javascript复制
[root@hf-01 ~]# chmod u=rwx /usr/bin/ls     将ls命令权限恢复成默认初始权限
[root@hf-01 ~]# !ls
ls -l /usr/bin/ls
-rwxr-xr-x. 1 root root 117616 6月  10 2014 /usr/bin/ls
[root@hf-01 ~]# chmod g s /usr/bin/ls     设置set_gid权限
[root@hf-01 ~]# !ls
ls -l /usr/bin/ls
-rwxr-sr-x. 1 root root 117616 6月  10 2014 /usr/bin/ls

在切换到另一个终端2hf(1)下
[hanfeng@hf-01 ~]$ ls /root/    将set_gid权限赋给ls,当在其他用户下使用ls命令时,(因为ls的所属组是root,所以就会以root身份来执行)
11.txt  123  234  2.txt  33.txt  anaconda-ks.cfg.1  ha.txt  hf
[hanfeng@hf-01 ~]$ ls -ld /root/
dr-xr-x---. 5 root root 4096 10月 26 09:41 /root/

set_gid用法——>目录

代码语言:javascript复制
[root@hf-01 ~]# ls -l
总用量 8
-rw-r--r--. 1 root root   0 10月 26 08:39 11.txt
drwxr-xr-x. 2 root root   6 10月 26 08:39 123
drwxrwxr-x. 2 root root   6 10月 26 08:57 234
-rwxrwxrwx. 1 root root 924 10月 25 06:49 2.txt
-rw-rw-r--. 1 root root   0 10月 26 08:56 33.txt
-rw-------. 1 root root 973 8月  21 05:05 anaconda-ks.cfg.1
-rw-rw-r--. 1 root root   0 10月 26 09:41 ha.txt
dr-x--xr-x. 2 root root  18 10月 26 06:56 hf
[root@hf-01 ~]# chmod g s 234       更改234目录的set_gid权限
[root@hf-01 ~]# ls -ld 234
drwxrwsr-x. 2 root root 6 10月 26 08:57 234
[root@hf-01 ~]# chown :hanfeng 234      再来更改234目录所属组的权限
[root@hf-01 ~]# ls -ld 234
drwxrwsr-x. 2 root hanfeng 6 10月 26 08:57 234
[root@hf-01 ~]# touch 234/gurui         在目录234下新建文件gurui
[root@hf-01 ~]# ls -l 234/      查看所有者和所有组
总用量 0
-rw-r--r--. 1 root hanfeng 0 10月 27 07:46 gurui
[root@hf-01 ~]# mkdir 234/am            在目录234下新建目录am 
[root@hf-01 ~]# ls -l 234/
总用量 0
drwxr-sr-x. 2 root hanfeng 6 10月 27 07:47 am
-rw-r--r--. 1 root hanfeng 0 10月 27 07:46 gurui
[root@hf-01 ~]# chmod g-s 234       去除set_gid临时权限
[root@hf-01 ~]# touch 234/gurui111  在234目录下新建gurui111文件
[root@hf-01 ~]# !ls     发现在root用户下创建的文件,所有组默认都是root
ls -l 234/
总用量 0
drwxr-sr-x. 2 root hanfeng 6 10月 27 07:47 am
-rw-r--r--. 1 root hanfeng 0 10月 27 07:46 gurui
-rw-r--r--. 1 root root    0 10月 27 07:48 gurui111
[root@hf-01 ~]# mkdir 234/am1   在目录234下新建目录am1
[root@hf-01 ~]# ls -l 234/  发现在root用户下创建的目录,所有组默认都是root
总用量 0
drwxr-sr-x. 2 root hanfeng 6 10月 27 07:47 am
drwxr-xr-x. 2 root root    6 10月 27 07:49 am1
-rw-r--r--. 1 root hanfeng 0 10月 27 07:46 gurui
-rw-r--r--. 1 root root    0 10月 27 07:48 gurui111
  • 当给一个目录设置了set_gid之后,再去这个目录下面创建子目录和子文件的时候,那这个子文件和子目录的所属组会跟着父级目录(就是刚刚创建的set_gid权限的目录)保持一致。

set_gid总结

  • set_gid这个权限的作用,他不仅仅可以作用在文件上,也可以作用在目录上
    • 当作用在文件上,和set_uid作用类似,可以让执行文件的普通用户临时拥有所属组的身份。
    • 当作用在目录上,在创建子目录和子文件的时候,子目录和子文件所属组和该目录的所属组保持一致

0 人点赞