Linux 特殊用户权限 suid,sgid, sticky
每个进程会维护有如下6个ID:
真实身份 : real UID, readl GID --> 登录 shell 使用的身份
有效身份 : effective UID, effective GID --> 当进程真正去操作文件是所检查的身份,
存储身份 : saved UID, saved GID --> 当将一个程序文件执行为进程的时候, 该程序文件本身的属主和属组可以被存储为存储身份, 在随后进程运行的过程中, 进程就可以选择将 真实身份或存储身份 复制到有效身份, 以拥有真实身份或存储身份的权限. 但并不是所有的程序文件在执行的过程中都会设置存储身份的, 需要这么做的程序文件会在其 9 位权限的执行位的 x 改为 s, 这时, 这一位叫做 set UID bit 或 set GID bit.
$ chmod 4799 file ** 必须要在有 x 位的基础上, 才能设置 s 位.
这里的chmod后面不再只是三位的数字。最前面一位用于处理set-UID bit/set-GID bit,它可以被设置成为4/2/1以及或者上面数字的和。4表示为set UID bit, 2表示为set GID bit,1表示为sticky bit .
当 进程 fork 的时候, 真实身份和有效身份都会复制给子进程. 大部分情况下, 真实身份和有效身份都相同.
setuid, setgid,sticky
1. setuid :
在一个程序或命令上添加setuid以后(u+s),这样属主有了s权限,意味着任何用户在执行此程序时,其进程的属主不再是发起者本人,而是这个程序的属主。最典型的一个例子就是passwd这个命令;
普通用户运执行passwd命令来修改自己的密码,其实最终更改的是/etc/passwd这个文件。
$ll /etc/passwd
-rw-r--r-- 1 root root 2597 11月 12 15:36 /etc/passwd
但是 /etc/passwd 文件只有 root 才有权限更改, 再看下 passwd 命令的权限:
ll /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 3月 29 2016 /usr/bin/passwd*
passwd 命名运行时, 进程的属主是程序的属主, 即 root, 这样普通用户就有了修改自己账号密码的权限了.
设置 setuid 方法 :
$ chmod u(+|-)s /path/to/file
$ chmod 4644 /path/to/file
2. setgid :
数组有 s 权限, 即 执行此程序时, 次进程的属组不是运行程序的用户, 而是此程序文件的属组.
如果 setgid 赋值给 文件, 则运行次文件的其他用户具有该文件的属组特权;
如果 setgid 赋值为 目录, 则任何用户在该目录下创建的文件,该文件属组都和目录的属组一直.
$ chmod g+s /tmp/test
3. sticky
在有权限的情况下,可以添加和修改其他用户的文件,就是不能删除其他用户的文件,自己可以删除自己创建的文件。
$ chmod o(+|-)t /path/somefile
4. 三个权限用 八进制表示 :
suid : 4
sgid : 2
sticky : 1
Linux 特殊用户权限 suid,sgid, sticky的更多相关文章
- Linux 文件特殊权限 SUID SGID SBIT
文件除了常规的权限r, w, x 还有一些特殊的权限,s与t权限,具体的用处如下 1 SetUID 当s 这个标志出现在文件所有者的x权限上时, 例如/usr/bin/passwd, [root@or ...
- 【Linux】文件特殊权限 SUID/SGID/Sticky Bit
linux中除了常见的读(r).写(w).执行(x)权限以外,还有3个特殊的权限,分别是setuid.setgid和stick bit 1.setuid.setgid 先看个实例,查看你的/usr/b ...
- 特殊权限:SUID,SGID,Sticky
特殊权限passwd:s SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者: chmod u+s FILE chmod u-s FILE 如果FIL ...
- linux基础2-cd、mkdir、touch、umask、chattr、lsattr、SUID/SGID/Sticky Bit
一 cd : . 代表当前目录 .. 代表上一层目录 - 代表前一个工作目录 ~ 代表[目前用户身份]所在的自家目录 与cd效果相同 ~account 代表 account 这个用户的自家家目录 二m ...
- SUID,SGID,Sticky Bit详解(转)
SUID属性 passwd命令可以用于更改用户的密码,一般用户可以使用这个命令修改自己的密码.但是保存用户密码的/etc/shadow文件的权限是400,也就是说只有文件的所有者root用户可以写入, ...
- chmod 4777? 文件特殊权限 SUID SGID StickyBit
故事引入 今天碰到了一条指令, test 怎么在777前还有一位,颠覆了我的认知啊,这时候必须翻鸟哥神书了,找到一个链接<7.4.3 文件特殊权限:SUID/SGID/Sticky Bit> ...
- SUID ,SGID ,Sticky
SUID passwd:s SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者: chmod u+s FILE chmod u-s FILE 如果FILE本身原来就有执行权限, ...
- Linux 服务器用户权限管理改造方案与实施项目
Linux 服务器用户权限管理改造方案与实施项目 在了解公司业务流程后,提出权限整改方案改进公司超级权限root泛滥的现状. 我首先撰写方案后,给boss看,取得boss的支持后,召集大家开会讨论. ...
- linux文件权限位SUID,SGID,sticky的设置理解
SUID含义:文件的该位被设置为1,在该文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来 执行这个文件,他都有文件所有者的特权,如果所有者是root的话,那么执行人就有超 ...
随机推荐
- C# Webclient 和 Httpclient如何通过iis authentication 身份验证。
前言: 该博客产生的背景是客户那边有部署网站的方法是iis windows authentication身份验证,而系统中使用Webclient来调用别的系统的方法.在此情况下,原本可以使用的功能,都 ...
- Dockerfile 构建镜像 - 每天5分钟玩转容器技术(13)
Dockerfile 是一个文本文件,记录了镜像构建的所有步骤. 第一个 Dockerfile 用 Dockerfile 创建上节的 ubuntu-with-vi,其内容则为: 下面我们运行 dock ...
- 如何设置自适应当前浏览器高度的div块
嗯 就是下面这样 <!DOCTYPE html> <head> <title>adaptive this page size</title> <s ...
- Ext JS 实现建议词模糊动态搜索功能
代码: new Ext.form.ComboBox({ store: new Ext.data.JsonStore({ idProperty: 'VehicleNo', url: '../ajax/t ...
- 添加本地jar包到本地的Maven仓库以及在Maven仓库中搜索想要添加的jar包
今天在学习Memacached的时候,将java_memcached-release下载下来,要使用maven来集成相关的jar包,Memcached的jar包如下: java_memcached-r ...
- 每天一道Java题[2]
问题 可以直接根据hashCode()方法产生的值判断两个对象是否相等吗? 解答 不能!根据Wikipedia(https://en.wikipedia.org/wiki/Java_hashCode( ...
- HotSpot的算法实现
1.枚举根节点 可达性分析中从GC Roots节点找引用,可作为GC Roots的节点主要是全局性的引用与执行上下文中,如果要逐个检查引用,必然消耗时间.另外可达性分析对执行时间的敏感还体现在GC停顿 ...
- JEESZ-Zookeeper集群安装
1. 在根目录创建zookeeper文件夹(service1.service2.service3都创建) [root@localhost /]# mkdir zookeeper 通过Xshell上传文 ...
- adesk上架实施--VDC详细配置(深信服论坛转)
1.建立独享桌面资源 1.1通过https://VDCIP:4430登录控制台,VDI设置-->资源管理-->新建独享桌面资源 1.2点击新建,独享桌面资源后显示如下界面 配置完后,往 ...
- gitlab 添加SSH Key
1.登录http://domain/users/sign_in 2.选择"Profile Settings",进入"Profile Settings"设置页面 ...