详见: http://blog.csdn.net/m13666368773/article/details/7615125

Linux SETUID机制

(1)进程运行时能够访问哪些资源或文件,不取决于进程文件的属主属组,而是取决于运行该命令的用户身份的uid/gid,以该身份获取各种系统资源。

(2)对一个属主为root的可执行文件,如果设置了SUID位,则其他所有普通用户都将可以以root身份运行该文件,获取相应的系统资源。

(3)可以简单地理解为让普通用户拥有可以执行“只有root权限才能执行”的特殊权限。

(4)setuid,setuid的作用是让执行该命令的用户以该命令拥有者的权限去执行,比如普通用户执行passwd时会拥有root的权限,这样就可以修改/etc/passwd这个文件了。它的标志为:s,会出现在x的地方,例:-rwsr-xr-x  。而setgid的意思和它是一样的,即让执行文件的用户以该文件所属组的权限去执行。

(5)我们知道/tmp是系统的临时文件目录,所有的用户在该目录下拥有所有的权限,也就是说在该目录下可以任意创建、修改、删除文件,那如果用户A在该目录下创建了一个文件,用户B将该文件删除了,这种情况我们是不能允许的。为了达到该目的,就出现了stick  bit(粘滞位)的概念。它是针对目录来说的,如果该目录设置了stick  bit(粘滞位),则该目录下的文件除了该文件的创建者和root用户可以删除和修改/tmp目录下的stuff,别的用户均不能动别人的,这就是粘滞位的作用。

Chmod命令中的特殊权限位含义:

1、S_ISUID 04000 文件的 (set user-id on execution)位

2、S_ISGID 02000 文件的 (set group-id on execution)位

3、S_ISVTX 01000 文件的sticky 位

上面的都是8进制数。

如何设置UID、GID、STICK_BIT:

SUID:置于 u 的 x 位,原位置有执行权限,就置为 s,没有了为 S .

chmod u+s  xxx # 设置setuid权限

chmod 4551 file // 权限: r-sr-x—x

SGID:置于 g 的 x 位,原位置有执行权限,就置为 s,没有了为 S .

chmod g+s  xxx # 设置setgid权限

chmod 2551 file // 权限: r-xr-s--x

STICKY:粘滞位,置于 o 的 x 位,原位置有执行权限,就置为 t ,否则为T .

chmod o+t  xxx # 设置stick bit权限,针对目录

chmod 1551 file // 权限: r-xr-x--t

最新文章

  1. Java多线程基础学习(二)
  2. SQL Server数据库sql语句生成器(SqlDataToScript)的使用(sql server自增列(id)插入固定值)
  3. 【转】简析 .NET Core 构成体系
  4. C# 关于时间
  5. c/c++ void 指针
  6. 网站开发常用jQuery插件总结(二)弹出层插件Lightbox_me
  7. 百万级开源MQTT消息服务器 搭建
  8. Linux 命令详解(十三)如何启动、关闭和设置ubuntu防火墙
  9. win8 下 TortoiseSVN 不显示图标
  10. WIN32控件使用系统样式
  11. apache web服务器安全配置
  12. 自己实现more命令
  13. MySQL——约束(constraint)详解
  14. Vue-router的基本用法
  15. JS中parseint和number的区别
  16. Django初级手册4-表单与通用视图
  17. clear(), evict(), flush()三种方法的用法实例
  18. isdigit()
  19. Qt+json
  20. QT学习笔记1:VS2015配置QT5.11

热门文章

  1. linux查看文件个数命令
  2. getScript 按需加载javascript
  3. Java快速教程
  4. STL标准模板库 向量容器(vector)
  5. resin的简单介绍和使用
  6. S.O.L.I.D
  7. mysql主配置文件my.cnf详细说明
  8. Java Web开发中的名词解释
  9. fuser 命令概述
  10. sublime 设置文件默认打开方式