zoukankan      html  css  js  c++  java
  • 实际用户ID和有效用户ID (三) *****

    我们知道权限有r,w,x。其实除了这三个,还有特殊权限。比如:

    [root@localhost ~]# ls -l /usr/bin/passwd

    -rwsr-xr-x 1 root root 22960 Jul 17 2006 /usr/bin/passwd

    可以发现权限位,有个s。特殊权限有如下3种:SUID、SGID、STICKY

    1 SUID

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

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

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

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

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

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

    linux文件目录的特殊权限SUID、SGID、STICKY

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

    linux文件目录的特殊权限SUID、SGID、STICKY

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

    2 SGID

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

    2.1 SGID对目录

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

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

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

    2.2 SGID对文件

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

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

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

    3 SBIT

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

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

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

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

    linux文件目录的特殊权限SUID、SGID、STICKY

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

    linux文件目录的特殊权限SUID、SGID、STICKY

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

    4 怎么操作SUID、SBID、SBIT

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

    (1)符号类型改变权限

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

    2. chmod g+s testdir-- 为testdir目录加上setgid标志

    3. chmod o+t testdir-- 为testdir目录加上sticky标志

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

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

    abc

    1. a - setuid位, 如果该位为1, 则表示设置setuid 4---

    2. b - setgid位, 如果该位为1, 则表示设置setgid 2---

    3. c - sticky位, 如果该位为1, 则表示设置sticky 1---

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

    1. rwsrw-r-- 表示有setuid标志

    2. rwxrwsrw- 表示有setgid标志

    3. rwxrw-rwt 表示有sticky标志

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

  • 相关阅读:
    "Login failed for user 'NT AUTHORITYSYSTEM'. 原因: 无法打开明确指定的数据库。"异常处理
    Windows 服务器自动重启定位
    扩展数据组码和说明
    C# CAD二次开发 扩展数据的几个重要方法
    CAD二次开发 eLockViolation 错误解决方法
    看kean 博客---- CAD.NET
    一个GIS研究生的自白
    C# 调用CAD系统命令
    <转载>Win32控制台工程中创建窗口
    <转载>无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/8124016.html
Copyright © 2011-2022 走看看