SetGID针对目录的作用
SetGID
SGID例子
设定SGID
chmod 2755 文件
chmod g+s
取消
chmod 0755 文件
chmod g-s 文件
setgid 可以针对目录
setuid 只能针对文件
SGID 例子 locate
SetGID针对文件的作用
只有可执行二进制程序才能设定SGID权限
命令执行者要对该程序拥有x(执行)权限
命令执行执行程序时,组身份升级为该程序文件的属组
SetGID权限只在程序执行过程中有效
例子 、usr/bin/locate具有SetGID身份
解释
/usr/bin/locate是可执行二进制程序,可以赋予SGID
执行用户user1对/usr/bin/locate命令拥有执行权限
执行/usr/bin/locate命令时,组身份会升级为slocate组而slocate组对/var/lib/mlocate/mlocate数据库拥有r权限,所以普通用户可以使用locate命令查询mlocate.db数据库
命令结束,user1用户的组身份返回为user1组
SetGID针对目录的作用
普通用户必须对此目录必须拥有r和x权限,才能进入此目录
普通用户在此目录中的有效组会变成此目录的属组
若普通用户对此目录拥有w权限,新建的文件的默认属组是这个目录的属组
举例:
root用户
cd /tmp/
mkdir test
chmod 777 test
user1用户
cd /tmp/test
touch cangls
ll
chmod 2777 test #切换到root用户
touch bols
ll
设定SetGID
chmod g+s 文件名
chmod 2755 文件名
取消SetGID
chmod g-s 文件名 chmod 0755 文件名
测试:
touch abc
chmod g+s abc
举例:
ll /usr/bin/locate
ll /var/lib/mlocate/mlocate
SetGID针对文件的作用
只有可执行二进制程序才能设定SGID权限
命令执行者要对该程序拥有x(执行)权限
命令执行执行程序时,组身份升级为该程序文件的属组
SetGID权限只在程序执行过程中有效
例子 、usr/bin/locate具有SetGID身份
SetGID针对目录的作用
普通用户必须对此目录必须拥有r和x权限,才能进入此目录
普通用户在此目录中的有效组会变成此目录的属组
若普通用户对此目录拥有w权限,新建的文件的默认属组是这个目录的属组
设定SetGID
chmod g+s 文件名 chmod 2755 文件名
取消SetGID
chmod g-s 文件名 chmod 0755 文件名
SetGID针对文件的作用
只有可执行二进制程序才能设定SGID权限
命令执行者要对该程序拥有x(执行)权限
命令执行执行程序时,组身份升级为该程序文件的属组
SetGID权限只在程序执行过程中有效
例子 、usr/bin/locate具有SetGID身份
SetGID针对目录的作用
普通用户必须对此目录必须拥有r和x权限,才能进入此目录
普通用户在此目录中的有效组会变成此目录的属组
若普通用户对此目录拥有w权限,新建的文件的默认属组是这个目录的属组
设定SetGID
chmod g+s 文件名 chmod 2755 文件名
取消SetGID
chmod g-s 文件名 chmod 0755 文件名
SetUID 只能对文件设置;
SetGID,即能对文件,又能对目录设置;
设置SetGID权限2;SetUID权限4;
SetGID针对文件的作用:
例如:
/usr/bin/locate有SGID权限,执行locate命令时用户user1的组身份会升级为slocate组,
而slocate组对/var/lib/mlocate/mlocate.db有r权限,
所以普通用户可以使用locate命令查询mlocate.db数据库,
命令结束后user1用户的组身份从slocate组返回原来组
SetGID 针对目录的作用!
1.用户必须附有对目录的rx权限
2.用户在目录中创建文件的所属组均为该目录所有组,而非用户的所属组
3.目录有SGID权限后,在目录中建立的新文件的组和目录文件的组默认相同
SetGID 针对目录的作用!
1:用户必须附有对目录的rx权限
2:用户在目录中创建文件的所属组均为该目录所有组,而非用户的所属组
SetGID,即能对文件,又能对目录设置;





setGID常见命令
setGID针对文件的作用

SetGID针对目录的作用:

SetGID针对文件的作用:


#既可以针对文件,又可以针对目录来设定sgid权限



#SGID可以针对目录赋予权限

#有效组:

#例子过程:

#设定SGID的方式:

例如:/usr/bin/locate有SGID权限,执行locate命令时用户user1的组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db有r权限,所以普通用户可以使用locate命令查询mlocate.db数据库,命令结束后user1用户的组身份从slocate组返回原来组