linux基础教程之特殊权限SUID、SGID和SBIT

 更新时间:2018年09月17日 11:04:16   作者:jony456123  
这篇文章主要给大家介绍了关于linux基础教程之特殊权限SUID、SGID和SBIT的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

对于linux中文件或目录的权限,应该都知道普通的rwx权限。Linux的权限不是很细致,只有RWX三种

  • r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
  • w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。
  • x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

1、目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。

2、只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。

3、一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外

4、目录的w位不设置,即使你拥有目录中某文件的w权限也不能写该文件

我们先看看下面两个的权限是什么

非常奇怪,/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)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • 使用Apache搭建http服务器实现CGI功能

    使用Apache搭建http服务器实现CGI功能

    专门处理 HTTP 请求的服务器,也被称为 Web 服务器, 常用的 Web 服务器有 Apache和 Nginx ,当然几大巨头五联网公司也都有其独自研发的 Web 服务器,比如阿里巴巴的Tengine, 这篇文章主要介绍了使用Apache搭建http服务器,实现CGI,需要的朋友可以参考下
    2024-07-07
  • 详解Linux下安装php环境并且配置Nginx支持php-fpm模块

    详解Linux下安装php环境并且配置Nginx支持php-fpm模块

    本篇文章主要介绍了详解Linux下安装php环境并且配置Nginx支持php-fpm模块,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • Apache 开通子站点配置方法

    Apache 开通子站点配置方法

    前一段时间突发奇想,想自己给自己做个记录系统,暂且就叫他记录系统吧。其实木的就是记录一些乱七八糟的事情,譬如,账簿,记事本之类的
    2012-06-06
  • Linux系统下根目录扩容介绍

    Linux系统下根目录扩容介绍

    大家好,本篇文章主要讲的是Linux系统下根目录扩容介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Linux下性能分析工具Perf安装与用法

    Linux下性能分析工具Perf安装与用法

    perf是Linux下的一款性能分析工具,能够进行函数级与指令级的热点查找,它由一个叫“Performance counters“的内核子系统实现,可用于性能瓶颈的查找与热点代码的定位,本文给大家介绍了Linux Perf安装与使用,需要的朋友可以参考下
    2024-05-05
  • Linux初学(CnetOS7 Linux)之切换命令模式和图形模式的方法

    Linux初学(CnetOS7 Linux)之切换命令模式和图形模式的方法

    本篇文章主要介绍了Linux初学(CnetOS Linux7)之切换命令模式和图形模式的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Vagrant基本命令使用详解

    Vagrant基本命令使用详解

    本篇文章主要介绍了Vagrant基本命令详解,现在分享给大家,也给大家做个参考。感兴趣的小伙伴们可以参考一下。
    2016-11-11
  • 使用Hyper-v虚拟机安装Centos7

    使用Hyper-v虚拟机安装Centos7

    本文详细讲解了使用Hyper-v虚拟机安装Centos7的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • CentOS5 + rsync 同步2台服务器的文件

    CentOS5 + rsync 同步2台服务器的文件

    CentOS 5 + rsync 同步2台服务器的文件,需要服务器同步的朋友可以参考下。
    2010-12-12
  • 浅析Hyper-V安装CentOS 8问题

    浅析Hyper-V安装CentOS 8问题

    这篇文章主要介绍了Hyper-V安装CentOS 8问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10

最新评论