从零开始学习Linux(二十六):文件特殊权限之SetGID

上一节中介绍的SetUID只能是针对可执行二进制文件。本节的SetGID权限既可以针对可执行二进制文件,又可以针对目录。针对不同的目标,起到的作用也不相同。

1、SetGID针对文件

  • 只有可执行的二进制文件才能设置SetGID权限;
  • 命令执行者要对该程序拥有x(可执行)权限;
  • 命令执行者在执行二进制文件的时候,组身份升级为该文件的所属组;
  • SetGID权限同样只在该文件执行过程中有效,当程序执行结束后组身份恢复成原来的身份;

我们以搜索命令 locate命令 举例说明,在 从零开始学习Linux(八):其他文件搜索命令 中我们介绍过locate命令的使用方法。

locate是通过生成一个文件和文件夹的索引数据库 /var/lib/mlocate/mlocate.db ,当用户在执行loacte命令查找文件时,它会直接在索引数据库里查找数据。

注意:若该数据库太久没更新或不存在,则会提示以下错误。

解决此问题的办法,执行命令:

updatedb

分别查看locate、mlocate.db文件的权限信息,如下图所示:

locate和mlocate.db权限信息

从图中可以看出:
(1)locate文件权限是 -rwx--s--x,其他人权限是x;
(2)locate所属组是slocate,所属组的权限是s,s是代表SetGID;
(3)mlocate.db文件权限是 -rw-r-----,其他人是没有任何权限的;
(4)mlocate.db文件所属组是slocate;

虽然其他人没有locate命令权限,但是真实情况是我们使用非root用户登录的时候,也可以使用locate命令。

执行过程说明:
(1)/usr/bin/locate是可执行二进制程序,且被赋予了s权限;
(2)用户对/usr/bin/locate拥有可执行权限;
(3)用户执行/usr/bin/locate命令时,组身份会变为slocate组,而slocate组对/var/lib/mlocate/mlocate.db文件拥有r权限,所以普通用户也可以使用locate命令查询mlocate.db数据库;
(4)命令结束后,用户组身份恢复之前身份;

整个执行过程如下图所示:

2、SetGID针对目录

  • 普通用户必须对此目录拥有r和x权限,才能进入此目录;
  • 普通用户在此目录中的有效组会变成此目录的所属组;
  • 若普通用户对此目录拥有w权限,新建的文件默认所属组是这个目录的所属组;

举例说明SetGID对目录文件的作用:
(1)进入系统临时文件/tmp目录;
(2)在/tmp目录下面创建testdir目录;
(3)为testdir目录赋予SetGID权限;
(4)查看testdir权限信息;
(5)为testdir目录赋予777(rwxrwxrwx)权限;
(6)切换到zhoujielun用户;
(7)进入testdir目录;
(8)创建一个文件qinghuaci;
(9)查看文件qinghuaci的详细信息;

整个过程执行的命令:

[root@VM-0-8-centos /]# cd /tmp/
[root@VM-0-8-centos tmp]# mkdir testdir
[root@VM-0-8-centos tmp]# chmod -R g+s testdir/
[root@VM-0-8-centos tmp]# ll -d testdir/
[root@VM-0-8-centos tmp]# chmod -R 777 testdir/
[root@VM-0-8-centos tmp]# su - zhoujielun
[zhoujielun@VM-0-8-centos ~]$ cd /tmp/testdir/
[zhoujielun@VM-0-8-centos testdir]$ touch qinghuaci
[zhoujielun@VM-0-8-centos testdir]$ ll qinghuaci

执行结果如下图所示:

从图中可以看到,设置了SetGID权限的目录,虽然用户是普通用户,但是创建的文件所属组依然是root。

3、设定SetGID的方法

3.1、方法一

命令格式:chmod -R 2755 文件名(-R可忽略掉);

3.2、方法二

命令格式:chmod -R g+s 文件名(-R可忽略掉);

因为SetGID权限改变的是组身份,所以是g+s或g-s来设定或取消权限;

4、取消SetGID的方法

4.1、方法一

命令格式:chmod -R 755 文件名(-R可忽略掉);

4.2、方法二

命令格式:chmod -R g-s 文件名(-R可忽略掉);

©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249

推荐阅读更多精彩内容