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这种方式来执行,不是说这个文件就不能执行了。

linux----suid\sgid的更多相关文章

  1. 【转载】linux SUID SGID

    作者:sparkdev 出处:http://www.cnblogs.com/sparkdev/ setuid 和 setgid 分别是 set uid ID upon execution 和 set ...

  2. Linux SUID SGID 讲解

    SUID属性 UNIX的内核是根据什么来确定一个进程对资源的访问权限的呢? 是这个进程的运行用户的(有效)ID,包括user id和group id.用户可以用id命令来查到自己的或其他用户的user ...

  3. Linux SUID SGID SBIT 简介和权限设定

    SUID :Set UID 1 SUID 权限仅对二进制程序(binary program)有效 2 执行者对于该程序需要具有x的可执行权限 3 本权限仅在执行该程序的过程中有效(run-time) ...

  4. 深入理解linux的权限设置和SUID,SGID以及粘滞位

    我们知道文件的权限可以用三个八进制数字表示.其实文件的权限应该用四个八进制来表示,不过用 ls -l 命令时,只显示三个罢了.那个没有显示的八进制数字其实是第一个,它用来设定一些特殊权限.这个八进制数 ...

  5. linux基础2-cd、mkdir、touch、umask、chattr、lsattr、SUID/SGID/Sticky Bit

    一 cd : . 代表当前目录 .. 代表上一层目录 - 代表前一个工作目录 ~ 代表[目前用户身份]所在的自家目录 与cd效果相同 ~account 代表 account 这个用户的自家家目录 二m ...

  6. Linux之特殊权限(SUID/SGID/SBIT)

    特殊权限的介绍 Set UID 当s这个标志出现在文件所有者的x权限上时,如/usr/bin/passwd这个文件的权限状态:“-rwsr-xr-x.”,此时就被称为Set UID,简称为SUID.那 ...

  7. Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file

    文件默认权限:umask [root@www ~]# umask 0022 <==与一般权限有关的是后面三个数字! [root@www ~]# umask -S u=rwx,g=rx,o=rx ...

  8. linux UID,GID,EUID,EGID,SUID,SGID

    SUID, SGID, sticky位可以参考: http://onlyzq.blog.51cto.com/1228/527247/ SUID属性只能运用在可执行文件上,当用户执行该执行文件时,会临时 ...

  9. linux中suid/sgid/sticky及扩展属性(attr)

    suid只适用于命令文件.(如/usr/bin/passwd) 当命令文件上有suid权限时,则操作用户的权限变成属主权限.命令文件上无suid权限则操作用户的权限不变. 查看suid权限: [roo ...

  10. SUID, SGID, SBIT

    基本上SUID有这样的限制与功能: SUID权限仅对二进位程序(binaryprogram)有效,不能用在shellscript上面: 运行者对於该程序需要具有x的可运行权限: 本权限仅在运行该程序的 ...

随机推荐

  1. c#datagrid的每行的单击事件

    需要一个帮助类 using System; using System.Net; using System.Windows; using System.Windows.Controls; using S ...

  2. ckeditor的使用与验证

    1.使id=id的textArea变为富文本编辑框 function inittextarea(id) {  CKEDITOR.replace(id,{         width:'600px',  ...

  3. Spring的IOC注解学习

    先引入jar包,common-annotations.jar 接着上代码: 1.dao接口 package com.dao; public interface OkpDao { public void ...

  4. svg 文字

    <text>标签 在svg中用使用<text>标签去定义一段文字.如 Example 1 在svg中写下 在平坦的路上曲折前行 Example 1 Dome <svg h ...

  5. PHP文件缓存类

    <?php /** * @desc 文件缓存 */ class Cache{ const C_FILE = '/Runtime/'; private $dir = ''; const EXT = ...

  6. 怎么查看mysql执行过的sql。

    有些时候当程序做了更新,数据库负载突然上来,或者并发翻了几倍.这个时候如果用show full processlist; 根本看不到完全的sql.怎么才能看是哪些sql导致的呢,在网上查了资料,有一下 ...

  7. inet address example(socket)

    package com.opensource.socket; import java.net.Inet4Address; import java.net.Inet6Address; import ja ...

  8. spark快速入门之最简配置 spark 1.5.2 hadoop 2.7 配置

    配置的伪分布式,ubuntu14.04上 先配置hadoop,参见这个博客,讲的很好 http://www.powerxing.com/install-hadoop/, 但是我在配的过程中还是遇到了问 ...

  9. Table XXX is marked as crashed and should be repaired问题

    数据表出错了,查询数据获取不到了. 尝试一 重启mysql service mysqld restart 没用,重启并没有把表修复掉 尝试二 check table vicidial_list;rep ...

  10. C语言的本质(15)——C语言的函数接口入门

    C语言的本质(15)--C语言的函数接口 函数的调用者和其实现者之间存在一个协议,在调用函数之前,调用者要为实现者提供某些条件,在函数返回时,实现者完成调用者需要的功能. 函数接口通过函数名,参数和返 ...