zoukankan      html  css  js  c++  java
  • linux文件的一些特殊权限

    一些特殊权限

      虽然我们通常看到一个八进制的权限掩码用三位数字来表示,但是从技术层面 上来讲,用四位数字来表示它更确切些。

      为什么呢?因为,除了读取,写入,和执 行权限之外,还有其它的,较少用到的权限设置。

       其中之一是 setuid 位(八进制 4000)。当应用到一个可执行文件时,它把有效用 户 ID 从真正的用户(实际运行程序的用户)设置成程序所有者的 ID。这种操作通 常会应用到一些由超级用户所拥有的程序。当一个普通用户运行一个程序,这个程 序由根用户 (root) 所有,并且设置了 setuid 位,这个程序运行时具有超级用户的 特权,这样程序就可以访问普通用户禁止访问的文件和目录。很明显,因为这会引 起安全方面的问题,所有可以设置 setuid 位的程序个数,必须控制在绝对小的范围 内。

           第二个是 setgid 位(八进制 2000),这个相似于 setuid 位,把有效用户组 ID 从 真正的用户组 ID 更改为文件所有者的组 ID。如果设置了一个目录的 setgid 位,则 目录中新创建的文件具有这个目录用户组的所有权,而不是文件创建者所属用户组 的所有权。对于共享目录来说,当一个普通用户组中的成员,需要访问共享目录中 的所有文件,而不管文件所有者的主用户组时,那么设置 setgid 位很有用处。

           第三个是 sticky 位(八进制 1000)。这个继承于 Unix,在 Unix 中,它可能把 一个可执行文件标志为“不可交换的”。在 Linux 中,会忽略文件的 sticky 位,但 是如果一个目录设置了 sticky 位,那么它能阻止用户删除或重命名文件,除非用户 是这个目录的所有者,或者是文件所有者,或是超级用户。这个经常用来控制访问 共享目录,比方说/tmp。

       这里有一些例子,使用 chmod 命令和符号表示法,来设置这些特殊的权限。

      首 先,授予一个程序 setuid 权限。 chmod u+s program 110

      下一步,授予一个目录 setgid 权限: chmod g+s dir 最后,授予一个目录 sticky 权限: chmod +t dir 当浏览 ls 命令的输出结果时,你可以确认这些特殊权限。

      这里有一些例子。

      首 先,一个程序被设置为 setuid 属性:

      -rwsr-xr-x

      具有 setgid 属性的目录: drwxrwsr-x

      设置了 sticky 位的目录: drwxrwxrwt

  • 相关阅读:
    ASP.NET面试题(二)
    iBatis.Net系列(四) iBatisNet API基础
    ibatisnet系列(一) 总览
    iBatisnet系列(二) 配置运行环境和日志处理
    HDU 1575 Tr A (矩阵乘法)
    HDU 连连看
    1504: ZZ的橱柜 (优先队列)
    离散化思想
    POJ 2777 Count Color (线段树)
    POJ 1823 Hotel (线段树)
  • 原文地址:https://www.cnblogs.com/hxphp/p/6861790.html
Copyright © 2011-2022 走看看