纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注。

Linux技术交流QQ群:915246(七月份最新!!)

对于linux中文件或目录的权限,应该都知道普通的rwx权限。我们先看看下面两个的权限是什么

非常奇怪,/tmp目录和 passwd文件的权限怎么怪怪的,怎么有s和t权限呢。看了下面的内容你就明白了。

1 SUID

当s出现在文件拥有者的x权限上时,如我们上面看到的/usr/bin/passwd这个文件的权限时-rwsr-xr-x,此时就被称为SET UID简称SUID.SUID对于一个文件有什么限制和功能呢?

SUID权限仅对二进制可执行文件有效

执行者对于该文件具有x的权限

本权限仅在执行该文件的过程中有效

执行者将具有该文件拥有者的权限

例如普通用户用passwd修改自己的命令,实际上最终更改的是/etc/passwd文件. 此文件时用户管理配置文件,只有root权限才能更改。

既然是root用户才拥有此权限,为什么我们可以通过passwd命令来修改密码呢,那这就要归功于passwd设置了suid权限位了。

此时普通用户通过执行passwd命令,临时拥有root权限,间接的修改/etc/passwd,以达到修改自己密码的权限。

2 SGID

当s出现在目录或文件所属群的x权限上时,此时就称为SET GID简称SGID,那SGID对文件和目录分部有哪些功能呢?

2.1 SGID对目录

使用者若对于此目录具有 r 与 x 的权限时,该使用者能够进入此目录

使用者在此目录下的群组将会变成该目录的群组

若使用者在此目录下具有 w 的权限(可以新建文件),则使用者所创建的新文件,该新文件的群组与此目录的群组相同

2.2 SGID对文件

SGID 对二进制可执行文件有效

程式执行者对于该文件来说,需具备 x 的权限

执行者在执行的过程中将会获得该文件群组的支援(用于改文件群组的权限)

3 SBIT

当s出现在目录其他用户的x权限上时,此时就称为Sticky Bit简称SBIT,那SBIT有哪些限制和作用呢?

仅对目录有效,对文件无效

当使用者在该目录下建立文件或目录时(有权限的情况下),仅自己与 root 才有权力删除新建的目录或文件

我们知道/tmp目录是这样的权限。

现在我们来验证下,先用root账号在tmp文件中创建一个文件test,然后用openstack(其他账号)进入该目录,删除test文件,看看发生什么情况

我们看到这样是不能删除文件的。因为/temp目录有SBIT权限。

4 怎么操作SUID、SBID、SBIT

操作这些标志与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作,

(1)符号类型改变权限

chmod u+s testbin– 为testbin文件加上setuid标志.

chmod g+s testdir– 为testdir目录加上setgid标志

chmod o+t testdir– 为testdir目录加上sticky标志

(2) 数字类型改变档案权限

采用八进制方式. 对一般文件通过三组八进制数字来置标志, 如 666, 777, 644等. 如果设置这些特殊标志, 则在这组数字之外外加一组八进制数字. 如 4666, 2777等. 这一组八进制数字三位的意义如下,

abc

a – setuid位, 如果该位为1, 则表示设置setuid 4—

b – setgid位, 如果该位为1, 则表示设置setgid 2—

c – sticky位, 如果该位为1, 则表示设置sticky 1—

设置完这些标志后, 可以用 ls -l 来查看. 如果有这些标志, 则会在原来的执行标志位置上显示. 如

rwsrw-r– 表示有setuid标志

rwxrwsrw- 表示有setgid标志

rwxrw-rwt 表示有sticky标志

那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)

原文来自:  http://www.codeceo.com/article/linux-suid-sgid-sbit.html

让您学习到的每一节课都有所收获

《Linux就该这么学》是由资深运维专家刘遄及全国多名红帽架构师(RHCA)基于最新RHEL7系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材。

☀刘遄老师QQ:5604241  微信:gnu_chuan

☀学员助教QQ:5604674

☀ Linux技术交流A群(满):560843

☀Linux技术交流B群:340829

☀Linux技术交流C群:463590

☀Linux技术交流D群:915246

☀Linux技术交流E群:1663106

☀Linux技术交流F群:1653851

☀Linux技术交流G群:2632018(新群,火热加群中……)

☀官方站点:www.linuxprobe.com

☀ 电脑在线阅读效果更佳:

http://www.linuxprobe.com/chapter-00.html

按住图片3秒,即可自动关注。

点击左下角查看更多热门技术

linux添加suid权限,Linux特殊权限SUID、SGID、SBIT相关推荐

  1. vtigercrm中添加用户字段_linux笔记(一):linux添加用户并赋予root权限

    最近开始学习linux,不定期把一些学习到的东西记录到这里,权当笔记! Linux添加用户并赋root权限 一.添加用户并设置密码: 1.添加一个普通用户 2.设置密码,当看到"passwd ...

  2. 满足lisheng需求 linux添加环境变量 linux批处理 2016.04.25小结

    看了下博客上的日期,有11天没有更新博客了,我觉得这个还是个比较适合我的习惯,还是要坚持下去!对学习知识的记忆非常好!那就从今天开始,重新开始博客! 1.昨天重新改了credit_results的字段 ...

  3. linux添加windows网络打印机,Linux Mint如何添加windows分享的网络打印机?

    1.安装samba sudo apt-get install samba 2.找到系统打印机选项 通过 Menu-->>控制中心-->>系统管理找到 Printers选项,双击 ...

  4. 嵌入式linux添加环境变量,Linux环境变量

    前言: 1. 环境变量是操作系统环境设置的变量,适用于整个系统的用户进程: 2. 环境变量可以在命令中设置,但是用户注销的时候将会丢失这些设置值: 3. 若要重复适用,则最好在.profile中定义: ...

  5. linux添加qcc,Alpine Linux添加Let’s Encrypt CA证书或者自签CA证书

    Alpine Linux添加Let's Encrypt CA证书或者自签CA证书 1. 用docker进行查看 进入容器, docker run -it alpine:latest /bin/sh 安 ...

  6. linux 添加宋体字符集,Linux下安装中文宋体

    1,#cd /usr/share/fonts/default 2,mkdir -p ./truetype/simsun 3,取得simsun.ttc文件:如果网上下载不到则在windows (c:/w ...

  7. linux添加hello驱动,Linux驱动之建立一个hello模块

    目标:在开发板上执行insmod hello.ko能在控制台打印出hello init:接着执行rmmod会在控制台打印出hello exit 建立一个hello模块的步骤如下: 1.建立一个hell ...

  8. Linux添加用户并赋管理员权限

    添加用户 adduser tom # 添加用户 passwd tom # 修改密码userdel -r tom # 删除用户 给用户赋root权限 # 方法一: 修改/etc/sudoers文件,把下 ...

  9. arch linux添加用户,Arch Linux配置教程

    以arch的基本系统为基础,我们可以对其进行各种配置操作,让其更符合个人喜好.下面介绍了一些常用的配置. 1.用户管理 新安装的arch只有一个root用户,使用root用户来进行日常系统管理是很危险 ...

  10. linux添加中文字库主线任务,Linux 添加中文字体库

    背景:润乾报表 win上面的项目直接上传到linux 上,但预览&下载报表时乱码 如果含有斜线的单元格或统计图的报表在网页上发布时,统计图或斜线单元格里的汉字会变成小方框,此时往往是服务器端操 ...

最新文章

  1. 【企业管理】价值创造的两个轮子
  2. 深入理解RCU | RCU源码剖析
  3. postgres 支持的线程数_线程池被打满了怎么处理呢,你是否真的了解线程池?
  4. 专题:生物医疗大数据
  5. 2.24. Spring boot with Apache Kafka
  6. 计划任务 crontab、at
  7. 方舟编译器的安装和编译Helloword
  8. 打开模式时防止BODY滚动
  9. xp怎么删除计算机用户,WinXp系统如何删除用户账户?Xp系统删除用户账号的方法...
  10. app调用webapi时候出现读取不到session的问题
  11. 大学生爱情兵法-洪亚非-听课笔记
  12. postgresal去重_postgresql数据库去重方法
  13. MySQL 批量插入申请自增 ID
  14. 数学不好学计算机有影响吗,数学很差能学计算机吗
  15. c/c++判断数组中元素的个数
  16. mysql explain type_MySQL explain type详解
  17. 放弃数学专业跳槽高薪行业,如今他却后悔了
  18. 显卡超频很简单 RivaTuner使用教程
  19. 1.8正版生存服务器,我的世界1.8纯净版
  20. 精灵图与字体图标的使用

热门文章

  1. linux 查看日志文件最后两千行中包含 字符‘ERROR’ 的前5 和后5行
  2. 厦门宝讯网捷:拼多多怎样开直通车?
  3. 航海日 | 乘容器之舟,驶向星辰大海!
  4. 航海世纪提示服务器维护中,《航海世纪》全服务器免费玩家爆满
  5. Java实现网页数据采集
  6. jquery点击事件重复/叠加
  7. 对方不想和你说话 php,女生说不想和你说话怎么回答 女生说不想说话是什么意思...
  8. 校园实验室安装路由器
  9. Validated校验
  10. 面试题,你觉得打败微信的将会是一款什么样的产品?