Linux第二周学习笔记(13)


2.19 特殊权限set_gid

特殊权限set_gid:这个权限可以作用在二进制可执行文件上,还可以作用在目录上。特殊权限set_gid权限位是作用在组权限位上,目录被设置set_gid权限后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组

-----------------------------------------------------------------------------------------------

[[email protected] ~]# chmod g+s /usr/bin/ls

[[email protected] ~]# ls -l /usr/bin/ls

-rwxr-sr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls

加入set_gid权限以后在组的权限位多了一个小“s” -rwxr-sr-x.,/usr/bin/ls文件变成了黄色,set_gid和set_uid在文件上的时候功能上十分相像的,区别主要在于更换了角色,set_uid是让普通用户临时拥有了所有者的身份,set_gid是普通用户临时拥有所属组的身份。

----------------------------------------------------------------------------------------------

set_gid权限作用在文件上(/usr/bin/ls):

加入set_gid权限以后查看普通用户是否能够查看/root/目录的权限:

Root用户下给/usr/bin/ls文件添加set_gid权限:

[[email protected] ~]# chmod g+s /usr/bin/ls

[[email protected] ~]# ls -l /usr/bin/ls

-rwxr-sr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls

在普通用户下是否能够查看/root/目录:

[[email protected] ~]$ ls -l /root/

总用量 12

-rwx------  1 root root    0 1月  30 20:53 123.txt

-rw-------. 1 root root 1418 1月  22 08:19 anaconda-ks.cfg

-rw-r--r--  1 root root 4358 1月  29 23:24 anaconda-ks.cfg.1

[[email protected] ~]$ ls -ld /root/

dr-xr-x---. 3 root root 203 1月  30 20:53 /root/

加入set_gid权限以后是可以查看/root/目录的,因为/root/这个目录对于root组来讲也是拥有r-x权限也就是读和打开的权限,所以设置了set_gid权限以后是能够查看/root/目录。

-----------------------------------------------------------------------------------------------

set_gid权限作用在目录上:

[[email protected] tmp]# ls -l

总用量 12

drwxr-xr-x  3 root     root   35 2月   1 23:29 001

drwxr-xr-x  2 root     root    6 2月   3 15:25 002

-rw-r--r--  1 root     root   14 2月   1 23:37 123456.txt

-rw-r--r--  1 root     root    0 2月   1 22:09 123.txt

-rw-r--r--  1 root     root   65 2月   1 23:03 12.txt把set_gid权限添加set_gid权限到002目录:

[[email protected] tmp]# chmod g+s 002

[[email protected] tmp]# ls -l

总用量 12

drwxr-xr-x  3 root     root   35 2月   1 23:29 001

drwxr-sr-x  2 root     root    6 2月   3 15:25 002

-rw-r--r--  1 root     root   14 2月   1 23:37 123456.txt

-rw-r--r--  1 root     root    0 2月   1 22:09 123.txt

-rw-r--r--  1 root     root   65 2月   1 23:03 12.txt

更改002目录的所属组:

[[email protected] tmp]# ls -l

总用量 12

drwxr-xr-x  3 root     root   35 2月   1 23:29 001

drwxr-sr-x  2 root     user    6 2月   3 15:25 002

-rw-r--r--  1 root     root   14 2月   1 23:37 123456.txt

-rw-r--r--  1 root     root    0 2月   1 22:09 123.txt

-rw-r--r--  1 root     root   65 2月   1 23:03 12.txt

002目录下创建一个文件:

[[email protected] tmp]# touch 002/daizhihong

[[email protected] tmp]# ls -l 002/

总用量 0

-rw-r--r-- 1 root user 0 2月   3 15:40 daizhihong

创建/daizhihong/ 文件后所属组也是user用户组了,

创建一个子目录看看用户组是否是user用户组:

[[email protected] tmp]# mkdir 002/yngndzh

[[email protected] tmp]# ls -l 002/

总用量 0

-rw-r--r-- 1 root user 0 2月   3 15:40 daizhihong

drwxr-sr-x 2 root user 6 2月   3 15:44 yngndzh

可以看到创建的子目录/yngndzh/用户组也是user用户组,并且drwxr-sr-x组权限位也自动加上了set_gid权限。

去掉set_gid权限再来查看是用户组是否还是user用户组:

[[email protected] tmp]# chmod g-s 002

[[email protected] tmp]# ls -l

总用量 12

drwxr-xr-x  3 root     root   35 2月   1 23:29 001

drwxr-xr-x  3 root     user   39 2月   3 15:44 002

-rw-r--r--  1 root     root   14 2月   1 23:37 123456.txt

-rw-r--r--  1 root     root    0 2月   1 22:09 123.txt

-rw-r--r--  1 root     root   65 2月   1 23:03 12.txt

[[email protected] tmp]# touch 002/daizhihong123

[[email protected] tmp]# ls -l 002

总用量 0

-rw-r--r-- 1 root user 0 2月   3 15:40 daizhihong

-rw-r--r-- 1 root root 0 2月   3 15:51 daizhihong123

drwxr-sr-x 2 root user 6 2月   3 15:44 yngndzh

[[email protected] tmp]# ls -l 002

总用量 0

-rw-r--r-- 1 root user 0 2月   3 15:40 daizhihong

-rw-r--r-- 1 root root 0 2月   3 15:51 daizhihong123

drwxr-sr-x 2 root user 6 2月   3 15:44 yngndzh

drwxr-xr-x 2 root root 6 2月   3 15:54 yngndzh123

此时新建的文件/daizhihong123/用户组的权限变成了root,创建/yngndzh23/目录用户组的权限也是变成了root。

由此可见给一个目录设置了set_gid权限以后,在这个目录下面创建子文件或者子目录的所属组会跟着这个父级目录保持一致。

set_gid权限:不单单可以作用在文件上也可以作用在目录上,当set_gid权限作用在文件上时和set_uid权限十分相似,set_gid权限可以让普通用户临时拥有所属组的身份。

set_gid权限作用在目录上的时候,创建子目录或者文件的时候,所创建的子目录或者子文件的所属组和该目录的所属组保持一致。

原文地址:http://blog.51cto.com/13577820/2068486

时间: 2024-10-02 12:18:49

Linux第二周学习笔记(13)的相关文章

Linux第二周学习笔记(8)

2.14 文件或目录权限chmod (1). 权限表示 [[email protected] ~]# ls -l 总用量 12 -rw-------. 1 root root 1418 1月  22 08:19 anaconda-ks.cfg -rw-r--r--  1 root root 4358 1月  29 23:24 anaconda-ks.cfg.1 文件的权限是和所有者.所属组有关系的,一个文件总共有三个权限位总共有9位分成三段,加上第一位表示设备类型总共十位,一下进行解析: -rw

Linux第二周学习笔记(7)

2.13 文档查看cat_more_less_head_tail (1). cat命令 cat命令:用于查看一个文件的内容并将其显示在屏幕上 cat-A命令:显示所有的内容,包括特殊字符 cat-n命令:显示行号 -------------------------------------------------------------------------------------------- cat命令: [[email protected] tmp]# cat /etc/passwd ro

Linux第二周学习笔记(9)

2.15 更改所有者和所属组chown chown(change owner)命令:更改所有者,也可更改所属组 chown -R命令: chown命令只是对文件或者目录生效的仅仅只是指定的这个目录本身的所属用户及所属组,如果要把目录下面的子目录还有子文件全部一次性批量更改所属人或者所属用户组,就要使用-R参数 -------------------------------------------------------------------------------- chown命令更改文件的所

Linux第二周学习笔记(10)

2.16 umask Umask命令:用于改变文件和目录的默认权限,格式:umask ***(***代表3个数字).查看umask的值,只要在命令行输入umask即可. 默认情况下,文件的权限值是:-rw-r--r--(644),目录的权限值是:drwxr-xr-x(755).着两个权限值是有什么来定的呢?这个就涉及到了一个慨念叫umask,我们通过这个值就可以确定文件的权限值是什么,也可以确定目录的权限值是什么. ----------------------------------------

Linux第二周学习笔记(11)

2.17 隐藏权限lsattr_chattr chattr命令:是设置吟唱隐藏权限的命令,更改Linux文件系统上的文件属性. 参数说明: A:表示文件或目录的atime将不可修改 s:会将数据同步写入磁盘中 a:只能追加不能删除,非root用户不能设定该属性 c:自动解压该文件,读取时会自动解压 i:文件不能删除.从命名.设定链接.写入以及新增数据 lsattr(list attribute)命令:用于读取文件或者目录的特殊权限 a:列出所有文件(包含隐藏文件) R:连同子目录一起列出 d:只

Linux第二周学习笔记(12)

2.18 特殊权限set_uid set_uid:这个权限是针对二进制可执行文件,使文件在执行阶段具有文件所有者的的权限. -------------------------------------------------------------------------------------------- 例如passwd命令: [[email protected] ~]# which passwd /usr/bin/passwd [[email protected] ~]# ls -l /u

Linux第一周学习笔记(2)

Linux第一周学习笔记(2) 1.3认识Linux (1).什么是Linux Linux是一个操作系统,比如说微软的winodws.苹果电脑的masOS.早于Linux发行的unix: 我们平时使用的PPT.浏览网站.玩游戏这些都是需要操作系统的层面上来完成的: 也包括了我们现在手机使用的系统有三个版本一个是Andriod和苹果的Los以及微软的windows,Los其实也就是Unix系统而Andriod是Linux系统: 我们生活当中常用的一些网站.游戏.QQ.微信这些应用都是在Linux操

Linux第二周学习总结——操作系统是如何工作的

LINUX内核分析第一周学习总结——操作系统是如何工作的 黄韧(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 [知识点总结] (一)计算机是如何工作的?(总结)——三个法宝 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的基础功能:函

Linux内核分析——第二周学习笔记

20135313吴子怡.北京电子科技学院 chapter 1 知识点梳理 (一)计算机是如何工作的?(总结)——三个法宝 ①存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: ②函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的基础功能: enter pushl %ebp movl %esp,%ebp leave movl %ebp,%esp popl %ebp 函数参数传递机制和局部变量存储 ③中