SGID权限简介

SGID简介:
1.只有可执行二进制程序才能设置SGID权限
2.命令执行者要对该程序拥有执行(x)权限
3.命令执行者在执行程序的时候,组身份升级为该可执行程序文件的属组
4.SGID权限只在该程序执行过程中有效,也就是组身份只在程序执行过程中发生改变,命令结束用户组身份恢复.

以文件查找命令locate为例说明

1 [[email protected] ~]$ ll /usr/bin/locate
2 -rwx--s--x. 1 root slocate 35548 Sep 24  2012 /usr/bin/locate   //拥有SGID权限,普通用户执行该命令时,组身份会切换到slocte

使用locate命令查找文件时,实际是在/var/lib/mlocate/mlocate.db数据库中查找

 1 [[email protected] ~]$ ll /var/lib/
 2 total 140
 3 -rw-r--r--.  1 root    root     728 May 20 09:32 logrotate.status
 4 drwxr-xr-x.  2 root    root    4096 May  2  2016 misc
 5 drwxr-x---.  2 root    slocate 4096 May 20 09:32 mlocate   //可以看到属主和所属组成员才能看到该目录下的文件
 6
 7 [[email protected] ~]$ cd /var/lib/mlocate/
 8 -bash: cd: /var/lib/mlocate/: Permission denied
 9 [[email protected] ~]$ ll /var/lib/mlocate/
10 ls: cannot open directory /var/lib/mlocate/: Permission denied

普通用户使用locate命令可以查找文件是因为执行locate命令时组身份切换到该目录所属组slocate

SGID针对目录的作用
1.普通用户必须对该目录拥有rx权限,才能进入此目录
2.普通用户在该目录中的有效组会变成该目录的属组
3.若普通用户对此目录拥有w(可创建文件)权限时,新创建的文件的默认属组是这个目录的属组

1 [[email protected] tmp]# chmod 2775 test
2 You have new mail in /var/spool/mail/root
3 [[email protected] tmp]# ll
4 total 20
5 drwxrwsr-x 2 root    root    4096 May 20 16:24 test

将身份切换为vampire

1 [[email protected] ~]$ cd /tmp/test/
2 [[email protected] test]$ ll
3 total 0
4 [[email protected] test]$ touch one.file    //普通用户vampire没有权限在test目录中创建文件,上面给test目录赋予2775,普通用户只有rx权限,没有w权限
5 touch: cannot touch `one.file‘: Permission denied

将test目录权限修改为2777

1 [[email protected] ~]# chmod 2777 /tmp/test/
2 [[email protected] ~]# ll /tmp/test/
3 total 0
4 [[email protected] ~]# ll /tmp/
5 total 20
6 drwxrwsrwx 2 root    root    4096 May 20 16:24 test

再将身份切换为vampire创建文件

1 [[email protected] ~]$ cd /tmp/test/
2 [[email protected] test]$ touch one.file
3 [[email protected] test]$ ll
4 total 0
5 -rw-rw-r-- 1 vampire root 0 May 20 16:37 one.file  //新建文件的默认属组是这个目录(test)的属组(root)
时间: 2024-11-05 19:37:52

SGID权限简介的相关文章

特殊权限简介(简单的理解)

特殊权限: suid:运行程序时,相应的进程的属主是程序文件自身的属主,而不是启动者. chmod u+s(u-s) file sgid:运行某个程序时,对应进程的属组是程序文件自身的属组,而不是启动者的所属的基本组.(常常与sticky一起使用,控制公共文件,组人能修改所有文件不能删除别人文件) chmod g+s(g-s) file sticky:在一个公共的目录中,每个人都可以创建文件,删除自己的文件,但不能删除别人的文件 chmod o+t filedir 特殊权限简介(简单的理解),布

1.Android6.0运行时权限简介_2.Android6.0权限适配之WRITE_EXTERNAL_STORAGE(SD卡写入)3_.Android 6.0 运行时权限理解

Android6.0运行时权限简介:http://unclechen.github.io/2016/03/05/Android6.0%E8%BF%90%E8%A1%8C%E6%97%B6%E6%9D%83%E9%99%90%E7%AE%80%E4%BB%8B/ Android6.0权限适配之WRITE_EXTERNAL_STORAGE(SD卡写入):https://blog.csdn.net/xiechengfa/article/details/52699233 Android 6.0 运行时权

Linux SUID SGID SBIT 简介和权限设定

SUID :Set UID 1 SUID 权限仅对二进制程序(binary program)有效 2 执行者对于该程序需要具有x的可执行权限 3 本权限仅在执行该程序的过程中有效(run-time) 4 执行者将具有该程序拥有者(owner)的权限 SGID:Set GID 1  SGID 可以针对文件或目录来设定 2 对于文件来说,SGID有如下的功能: 1) 对二进制程序有用 2)程序执行者对于该程序来说,需具备x的权限 3) 执行者在执行的过程中将会获得该程序群组的支持 3  对于目录来说

sticky bit权限简介

sticky bit简介:1.粘着位只对目录有效2.普通用户对该目录拥有w和x权限,即普通用户可以在此目录创建文件删除文件 粘着位作用:如果普通用户对一个目录拥有w权限,他就可以删除这个目录下的所有文件,包括别人创建的文件,这样的话,那这个目录的权限就不合理.粘着位的目的就是解决这个问题的.如果一个目录赋予了粘着位,除了root用户可以删除所有文件,普通用户就算对该目录拥有w权限也只能删除自己创建的文件,不能删除其他用户创建的文件. 以/tmp/目录为例说明 1 [[email protecte

SUID权限简介

SUID简介:1.只有可以执行的二进制程序文件才能设定SUID权限,非二进制文件设置SUID权限没任何意义.2.命令执行者要对该程序文件拥有执行(x)权限.3.命令执行者在执行该程序时获得该程序文件属主的身份.4.SUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效 以passwd命令说明 1 [[email protected] ~]$ whereis passwd 2 passwd: /usr/bin/passwd /etc/passwd /etc/passwd.OL

Linux权限管理--ACL权限简介

ACL权限不是针对某个文件或某个目录的,它是针对分区而言的. 使用df -h 查看系统分区 1 [[email protected] ~]$ df -h 2 Filesystem Size Used Avail Use% Mounted on 3 /dev/sda3 16G 2.9G 12G 20% / 4 tmpfs 947M 0 947M 0% /dev/shm 5 /dev/sda1 291M 35M 242M 13% /boot 6 /dev/sr0 3.0G 3.0G 0 100% /

Android权限简介

Android是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制,在这里简单介绍一下Linux文件系统的权限与Android中如何获取system权限. (一)linux文件系统上的权限 下面是一个典型的linux文件系统权限说明: -rwxr-x--x system   system       4156 2012-06-30 16:12 test.apk. 关于"-rwxr-x--x" 的权限说明 第一个字符代表这个文件的类型(如目录.文件或

SQL Server角色成员身份和权限简介

为便于管理数据库中的权限,SQL Server 提供了若干“角色”,这些角色是用于分组其他主体的安全主体.它们类似于 Microsoft Windows 操作系统中的组.数据库级角色的权限作用域为数据库范围.SQL Server 中有两种类型的数据库级角色:数据库中预定义的“固定数据库角色”和您可以创建的“灵活数据库角色”. 固定数据库角色是在数据库级别定义的,并且存在于每个数据库中.db_owner 和 db_securityadmin 数据库角色的成员可以管理固定数据库角色成员身份.但是,只

Salesforce自定义权限简介

自定义权限(Custom Permission) Salesforce默认提供了多种方式设定用户的权限,比如简档.权限集等.在这些设定中,已经包括了系统中的对象.应用.字段.页面布局等组件,管理员或开发者只需要设定权限等级即可. 当管理员或开发者需要设定更灵活的权限时,上面的方法便可能无法满足.为了解决这个问题,Salesforce提供了自定义权限(Custom Permission),让管理员或开发者可以设定完全自定义的权限,然后根据这些权限设定灵活决定各个组件的权限. 自定义权限的设定 在设