【linux权限分为 user group others三组】

  • 今天看到有个目录的权限是rwxrwxrwt 很惊讶这个t是什么,怎么不是x或者-呢?搜了下发现:

这个t代表是所谓的sticky bit。

  • sticky bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件.

要删除一个文件,你不一定要有这个文件的写权限,但你一定要有这个文件的上级目录的写权限。也就是说,你即使没有一个文件的写权限,但你有这个文件的上级目录的写权限,你也可以把这个文件给删除,而如果没有一个目录的写权限,也就不能在这个目录下创建文件。

如何才能使一个目录既可以让任何用户写入文件,又不让用户删除这个目录下他人的文件,sticky就是能起到这个作用。stciky一般只用在目录上,用在文件上起不到什么作用。

在一个目录上设了sticky位后,(如/home,权限为1777)所有的用户都可以在这个目录下创建文件,但只能删除自己创建的文件(root除外),这就对所有用户能写的目录下的用户文件启到了保护的作用。

可以通过chmod o+t tmp 来设置tmp目录的sticky bit,而且/tmp目录默认是设置了这个位的

stick bit一般是用于目录上的,用于文件意义不大

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

总结如下:如果某个目录设置了sticky bit(是在other用户的权限上设置的,设置后可执行位从x变成了t),那么用户在该目录下可以创建文件(当然前提是用户具有写权限和可执行权限,如 果具有可执行权限,设置sticky bit后是t;如果没有可执行权限的话,设置sticky bit后是T),而且可以删除自己创建的文件,但是,不能删除其他用户创建的文件,这样就起到了一种保护作用了。

可以参考如下文章:

众所周知,Linux的文件权限如: 777;666等,其实只要在相应的文件上加上UID的权限,就可以用到加权限人的身份去运行这个文件。所以我们只需要将bash复制出来到另一个地方, 然后用root加上UID权限,只要用户运行此Shell就可以用用root的身份来执行任何文件了

一个文件都有一个所有者, 表示该文件是谁创建的. 同时, 该文件还有一个组编号, 表示该文件所属的组, 一般为文件所有者所属的组.

如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限. 而setuid, setgid 可以来改变这种设置.

setuid: 设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.

setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.

sticky bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件.

下面说一下如何操作这些标志:

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

1) chmod u+s temp -- 为temp文件加上setuid标志. (setuid 只对文件有效)

chmod g+s tempdir -- 为tempdir目录加上setgid标志 (setgid 只对目录有效)

chmod o+t temp -- 为temp目录加上sticky标志 (sticky一般只用于目录)

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

abc

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

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

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

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

rwsrw-r-- 表示有setuid标志

rwxrwsrw- 表示有setgid标志

rwxrw-rwt 表示有sticky标志

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

  • linux目录读权限、执行权限和写权限

今天看APUE时说目录的读权限和执行权限是不同的,以前没怎么注意过,今天研究了下。

  • 当用户对某个目录只有读权限时,那么该用户可以列出该目录下的文件列表(即可以使用ll来列出目录下的文件),但是不能进入该目录(即不能cd 目录名 来进入该目录),即如果该目录是用户访问路径的某个组成部分的话,到这里是访问不了的。
  • 当用户对某个目录只有执行权限时,该用户是可以进入该目录的(即可以通过cd 目录名 来进入该目录),因为一个用户要想进入一个目录,就必须具有可执行权限才可以。但该用户是不能列出这个目录下的文件列表的(即不能使用ll等命令列出该目录下的信息)
  • 当用户具有写权限时,用户可以在当前目录增加或者删除文件,但需要几个前提:1、需要有可执行权限2、要想删除文件,那么sticky bit位是没有设置的

总结下下面的几种情况:

rwx===可以进入该目录(x)、可以列出该目录中的文件(r)、可以在该目录中增加或者删除文件(w和x)

rwt===可以进入该目录,可以列出该目录中的文件,可以在该目录中增加文件,但不能删除其他用户的文件,自己的文件可以删除

rw-===可以列出该目录中的文件列表,但无法进入该目录(因为不具有可执行权限)同时也无法在目录中增加或者删除文件,因为如果要想在一个目录中增加或者删除文件必须要求具有写权限和可执行权限才可以。估计这样的权限列表不太常见

r-x===这种权限列表很常见。可以进入该目录,可以列出该目录中文件列表,但不可以在该目录中增加或者删除文件

-wx==这种估计也不常见。可以进入该目录,可以在该目录中增加或者删除文件,但不可以列出该目录中的文件列表

其他的情况例如r--、-w-、--r、---等就很容易分析了。

Linux sticky bit 目录权限 rwt权限的更多相关文章

  1. Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file

    文件默认权限:umask [root@www ~]# umask 0022 <==与一般权限有关的是后面三个数字! [root@www ~]# umask -S u=rwx,g=rx,o=rx ...

  2. linux下为目录和文件设置权限

    摘:linux下为目录和文件设置权限 分类: Linux2012-05-09 03:18 7456人阅读 评论(1) 收藏 举报 linuxwordpressweb数据库serverfile linu ...

  3. Linux系统Web网站目录和文件安全权限设置

    查看Linux文件的权限:ls -l 文件名称查看linux文件夹的权限:ls -ld 文件夹名称(所在目录)例如: drwxr-xr-x 2 root root 4096 2009-01-14 17 ...

  4. Linux常用命令_(文件权限)

    Linux权限管理: 二.权限管理1.3种基本权限在Linux中,将使用系统资源的人员分为4类:超级用户.文件或目录的属主.属主的同组人和其他人员.超级用户拥有对Linux系统一切操作权限,对 于其他 ...

  5. Linux系统文件与目录权限管理

    Linux文件目录权限管理 一.Linux文件属性及权限 1.Linux文件及目录权限及属性说明 (1)权限及属性说明 (2)文件权限说明 三种权限说明:r 读  read w 写  write  x ...

  6. Linux学习之CentOS(九)-----文件与目录的默认权限与隐藏权限

    文件与目录的默认权限与隐藏权限 一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略 ...

  7. Linux学习之CentOS(八)----文件与目录的默认权限与隐藏权限(转)

    文件与目录的默认权限与隐藏权限 一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略 ...

  8. Linux系统文件和目录的属性及权限

    1 文件属性概述 Linux系统中的文件或目录的属性主要包括:索引节点(inode).文件类型.权限属性.硬链接数.所归属的用户和用户组.最近修改时间等内容(文件名严格来说不属于文件的属性): 下面是 ...

  9. Linux—用户新建目录和文件的默认权限设置:umask详解

    关注微信公众号:CodingTechWork,一起学习进步. 引言   我们有没有思考过一个问题,在登录Linux系统后,我们创建的目录或者文件的权限,为什么每次创建都是统一的?我们做以下实验:新建一 ...

随机推荐

  1. Java项目中的classpath

    一. 首先 classpath 是指 :项目路径\target\classes目录: 二.解释classes含义: 1.存放各种资源配置文件 2.存放模板文件 3.存放class文件, 对应的是项目开 ...

  2. Apache Spark技术实战之6 -- spark-submit常见问题及其解决

    除本人同意外,严禁一切转载,徽沪一郎. 概要 编写了独立运行的Spark Application之后,需要将其提交到Spark Cluster中运行,一般会采用spark-submit来进行应用的提交 ...

  3. ExtJS笔记 Store

    The Store class encapsulates a client side cache of Model objects. Stores load data via a Proxy, and ...

  4. oracle课堂笔记

    1.DOS登录1.1.sqlplus 输入用户名.密码1.2.sqlplus /nolog conn 用户名/密码@ip地址/数据库名称 [如果是sys登录则必须加上as sysdba ,as sys ...

  5. php安装memcache注意事项

    有没有谁遇到过这样的问题:在php.ini里面 extension=php_memcache.dll添加了memcache扩展,在ext目录里也添加了php_memcache.dll文件.但用phpi ...

  6. LeetCode Burst Balloons

    原题链接在这里:https://leetcode.com/problems/burst-balloons/ 题目: Given n balloons, indexed from 0 to n-1. E ...

  7. Line segment matching

    FMII2方法:FMII方法的轻微的修改.有限线段和无限线段(直线)的匹配. 求解方法: SVD分解 Unit Quaternion 协方差矩阵: 通过对C进行SVD分解得到R,根据R求得T. 算法流 ...

  8. WebViewClient shouldOverrideUrlLoading 常见错误用法

    需求描述 在使用 WebView 的项目中,一个常见的需求是将页面内的链接跳转限制在 WebView 内,而不是使用外部浏览器打开,但 WebView 的默认行为是将链接点击事件作为 Intent 发 ...

  9. EBS R12.2 创建应用层的启动和关闭脚本

    Create the following files to start and stop R12. application tier. Change the apps and weblogic pas ...

  10. hibernate 实现多表连接查询(转载)

    http://www.cnblogs.com/lihuiyy/archive/2013/03/28/2987531.html 为了方便,直接粘过来,方便查看.不收藏了 Hibernate主要支持两种查 ...