您的位置:首页 > 运维架构 > Linux

linux----suid\sgid

2015-11-10 17:26 323 查看
1、suid和sgid 都是针对二进制程序来说了,bash脚本不在它的作用范围。

2、如果一个二进制文件设置有suid,那么在userA用户执行它时,会以文件所属用户的身份来执行。sgid同理;

3、suid的优先级别比sgid的要大,也就是说如果同时设置了这两个话,和只设置suid一样;

4、一般说来一个文件所属用户的权限比所属组的权限更大,所以只要设置sgid可以解决的事就不要设置suid。

例子:

  1、以chown为例说明suid的作用。root/usra 是两个不同的用户

    root> cp /bin/chown /tmp/ #把chown复制到/tmp/用来做测试。

    root> touch /tmp/test.txt #创建一个test.txt文件,由于是以root身份运行的touch所以文件的所属用户和组都是root

    usra> /tmp/chown usra.usra /tmp/test.txt #usra用户想要修改test.txt文件的所属用户和组,会被提示没有权限。

    root> chown u+s /tmp/test.txt #root用户为/tmp/chown增加suid。

    usra> chown usra.usra /tmp/test.txt #成功

  2、为什么说suid,sgid只是会对二进制文件。

    root> touch mybash.sh

    root> echo "echo this is the content of mybash.sh">/tmp/mybash.sh

    root> chmod 744 /tmp/mybash.sh #别以为这个usra用户就不能执行mybash.sh中的脚本了

    usra> bash /tmp/mybash.sh #执行成功,没有x权限是说other不能以/tmp/mybash.sh这种方式来执行,不是说这个文件就不能执行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: