linux中一些特殊的权限(setuid/setgid/sticky)
linux中一些特殊的权限(setuid/setgid/sticky)
问题描述
今天在测试文件系统的时候,发现新创建的文件系统不能使用sudo命令,具体表现如下:
sudo su
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
在网上查了一下都说是要在超级用户权限下执行如下两个命令:
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
相对应的就是上述两个错误:sudo的用户属组要属于uid 0,即root用户;同时sudo要设置setuid位。我首先查询了一下我系统中sudo的信息:
ls /usr/bin/sudo
-rwxr-xr-x 1 root root 155008 Aug 28 2015 /usr/bin/sudo
已经是输入root用户组了,所以按照执行sudo时的错误提示,应该是要设置setuid位。执行命令chmod 4755 /usr/bin/sudo
或者chmod u+s /usr/bin/sudo
,再查看一下sudo的信息:
ls /usr/bin/sudo
-rwsr-xr-x 1 root root 155008 Aug 28 2015 /usr/bin/sudo
发现有一位”x”已经变成了”s”。这时我想起了在学习The Linux Command Line的时候,提到了一些特殊的用户权限,其中就包括设置setuid位。翻出来看看,学而时习之嘛~
特殊权限
虽然常见的八进制权限掩码都是用三位数表示的,但确切地说,它是用四位数表示的,因为除了读、写和执行权限以外,还有一些其他较少用到的权限设置,其中就涉及到上面的setgid设置。
setuid
其中之一就是setuid位,八进制表示为4000,当把它应用到一个可执行文件时,有效用户ID将从实际用户ID(实际运行该程序的用户)设置成该程序所有者的ID,大多数情况下,该权限设置通常应用于一些由超级用户所拥有的程序,例如本问题中的sudo。当普通用户运行一个具有“setuid root”(已设置setuid位,由root用户所有)属性的程序时,该程序将以超级用户的权限执行。
setgid
第二个是setgid位,八进制表示为2000,类似于setuid,它会把有效用户组ID从该用户的实际组ID更改为该文件所有者的组ID。如果对一个目录设置setgid位,那么在该目录下创建的文件将由该目录所在组所有,而不属于文件创建者所在组。当一个公共组下的成员需要访问共享目录下的所有文件时,设置setgid位将会很有用,并不需要关注文件所有者所在的用户组。
sticky
第三个是sticky位,八进制表示位1000,它是从UNIX中继承下来的,在LINUX中将会忽略文件的sticky位。但是对一个目录设置sticky位,那么将能阻止用户删除或者重命名文件,除非用户是这个目录的所有者、文件所有者或者超级用户。它通常用来控制对共享目录(例如/tmp)的访问。
设置方法
授予setuid权限
chmod u+s prog1
or
chmod 4xxx prog1
具有setuid属性的程序为-rwsr-xr-x
。
授予setgid权限
chmod g+s dir1
or
chmod 2xxx dir1
具有setgid属性的目录为drwxrwsr-x
。
授予sticky权限
chmod t dir1
or
chmod 1xxx dir1
具有sticky属性的目录为drwxrwxrwt
。
祝枫
2016年7月26日于深圳
linux中一些特殊的权限(setuid/setgid/sticky)相关推荐
- Linux中的文件特殊权限
Linux中的文件特殊权限 博客分类: 我爱linux linux中除了常见的读(r).写(w).执行(x)权限以外,还有3个特殊的权限,分别是suid.sgid和sticky bit 1.suid. ...
- Linux文件系统上的特殊权限 SUID, SGID, Sticky(粘之位)
每个人都有自己的梦想,我想把它写出来. Linux文件系统上的特殊权限 SUID, SGID, Sticky(粘之位) 1 文件基本权限 r读, w写, x执行 user, group, other ...
- linux中/usr下文件权限修改setuid导致的问题
2019独角兽企业重金招聘Python工程师标准>>> 在Ubuntu系统中因为一些原因我使用如下命令修改了/usr目录的拥有者权限: chown -R root:root /usr ...
- Linux内核学习笔记——Linux中的用户组和权限管理(UID是什么?)
目录 一.背景 进程权限 最小权限原则 二.linux系统安全模型 用户 用户组 用户和组的关系 安全上下文 进程的用户ID 函数setreuid和setregid 函数seteuid和setegid ...
- linux 修改 gid uid,uid, gid, setuid, setgid
程序和进程 一般而言,程序是一个可执行的文件,而进程是程序执行的实例,一个程序可以产生任意多个进程,这些进程具有相同的代码. 用户名/组名和uid/gid 每一个用户具有一个用户名和组名以及对应的ui ...
- centos sudo不能运行_如何在 Linux 中配置 sudo 访问权限 | Linux 中国
Linux 系统中 root 用户拥有 Linux 中全部控制权力.Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为.-- Magesh Maruthamuthu Lin ...
- linux 文件夹换所属用户,Linux中账号管理之权限管理(下)
linux中的账号管理我们在前面两张已经介绍了一些用户和组的相关概念,常用的配置文件,命令的使用.现在我们来看看账号管理中最傲娇的部分就是我们的权限管理. 一.简单介绍权限的概念 以install.l ...
- linux中facl有什么作用,在Linux中使用setfacl后权限被拒绝
有3个用户:A,B,C. A在他的主文件夹/ home / A / mydir中有mydir B可以读/ home / A内容 C可以读写/ home / A内容 我试过这样的方式: setfacl ...
- centos sudo不能运行_如何在Linux中配置sudo访问权限
Linux 系统中 root 用户拥有 Linux 中全部控制权力.Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为. 如果其他用户想去实施一些行为,不能为所有人都提供 ...
最新文章
- 利用FLASH和XML做炫酷图片相册
- CompactExifLib:访问JPEG文件中的EXIF标签
- 【layui】【laydate】设置可以选择相同的年份范围
- 赚钱就是一个合作的过程,合作的过程,也是扯淡的过程
- NPS内网穿透服务端一键安装脚本
- finally中关闭资源
- paip.dom4j中 selectSingleNode 或selectNodes获取不到节点的原因总结
- php 图片轮换 代码,jQuery实现图片轮播特效代码分享
- 幅值与峰峰值的计算_交流电有效值与峰值计算公式的推导过程.
- 测试图片真假软件,如何找出照片的PS痕迹__如何检测一张图片是否被PS过_飞翔教程...
- 系统集成项目管理工程师10大管理5个过程组47个过程域
- 【杂谈】斯科特与阿蒙森的南极点竞赛
- 重新发现Oracle太美之root.sh
- Python语言程序设计笔记(全)
- 使用gdiplus显示gif图片
- Mac电脑启动出现空白屏幕的解决办法
- 10.13(129. 求根到叶子节点数字之和 130. 被围绕的区域)
- react利用react-activation实现子路由缓存
- .NET 4.0安装提示一般信任关系失败
- [1]无线通信--介绍基本概念
热门文章
- spring boot(三)Junit 测试controller
- django框架之模板系统
- 深度解析javascript中的浅复制和深复制
- 网络协议从入门到底层原理(6)应用层 - 域名、DNS、DHCP、HTTP(ABNF、HTTP报文格式、请求方法、头部字段、状态码、跨域)、代理、CDN
- springboot国际化04
- 安装docker和jupyter采坑历程
- 那些拆中台的CTO,70%被裁了
- 深入了解帆软报表系统的启动过程一
- linux创建用户已存在哪里,解决linux下创建用户时出现 Creating mailbox file: 文件已存在...
- java mybatis分页查询语句_mybatis分页查询的实现(一)