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的话,那么执行人就有超 ...
随机推荐
- 浅谈JavaScript时间与正则表达式
时间函数:var box = new Date() 函数 Demo: alert(Date.parse('4/12/2007')); //返回的是一个毫秒数11763 ...
- express4.x的使用
①.安装 npm install -g express ②.创建应用 express [目录] 会在目录下生成 node_modules, 存放所有的项目依赖库.(每个项目管理自己的依赖,与Ma ...
- PHP 无限级分类(递归)
网上有很多,这是我自己做测试用的$arr = array( array('id'=>1,'name'=>'电脑','pid'=>0), array('id'=>2,'name' ...
- Docker- 创建支持SSH服务的容器镜像
示例 - CentOS7 [root@CentOS-7 ~]# cat ssh-centos7 FROM centos:centos7 MAINTAINER anliven "anliven ...
- 转:简单的Mysql主从复制设置
步骤如下: 1.主从服务器分别作以下操作: 1.1.版本一致 1.2.初始化表,并在后台启动mysql 1.3.修改root的密码 2.修改主服务器master: #vim /etc/my.cn ...
- 关于Dubbo一个接口多个实现的解决方案
如题,其实这个问题在官方文档中已经说明了.我直接贴图就好了 更多学习请参考:minglisoft.cn/technology
- js实用方法记录-简单cookie操作
js实用方法记录-简单cookie操作 设置cookie:setCookie(名称,值,保存时间,保存域); 获取cookie:setCookie(名称); 移除cookie:setCookie(名称 ...
- 我总结的常用sql语句
建表: Set sql_mode='strict_trans_tables': 存储引擎启用严格模式,非法数据值被拒绝 Create table t3(id int(4) primary key a ...
- 《安卓网络编程》之第八篇 安卓与服务器之间通讯JSON
JSON是什么? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition ...
- 纯CSS3实现loading正在加载。。。
场景分析:随着我司专职前端切图人员离职,切图的活重新落到我们小组团队成员的日常任务list里面,加上我们小组 7个前端 基本都是后台转的前端 (赶鸭子上架 前端现在需求量大 没办法) 加上自己也将就一 ...