本站招兵买马

Y8论坛-舟山东路论坛

 找回密码
 注册发帖

QQ登录

只需一步,快速开始

查看: 866|回复: 1
打印 上一主题 下一主题

Linux特殊文件权限

[复制链接]
跳转到指定楼层
1#
发表于 2011-3-26 22:12:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一般来说,使用过Linux的同学都知道,Linux文件的权限有rwx,所有者、所有组、其它用户的rwx权限是彼此独立的。为此,经常会听到如果某个web文件需要被修改的话,需要加上777的权限,这就是让所有用户可写。     但仔细一想,这样的权限未免有些想得比较天真,没有考滤特殊情况。例如/tmp目录默认权限是777,而且有些文件也是允许所有用户访问修改的,那么是不是任何一个用户都可以将这些删除呢?再如/etc/shadow保存的是用户密码文件,默认情况下它的权限是640,那么只有shadow的owner(root)才能修改它,按照常规理解,这是不可理解的,因为每个用户都可能修改密码,也就是会修改这个文件。
    为了把这些情况解释清楚,需要引入Linux特殊文件权限的概念。Linux特殊文件权限有三个玩意:sticky bit、SGID、SUID,以下一一道来。
    sticky bit
    sticky bit只对目录有效,使目录下的文件,只有文件拥有者才能删除(如果他不属于owner,仅属于group或者other,就算他有w权限,也不能删除文件)。
    加sticky bit的方法:
    chmod o+t /tmp或者
    chmod 1777 /tmp
    查看是否加了sticky bit,用ls -l,可以看到有类似这样的权限:“-rwxrwxrwt”,t就代表已经加上了sticky bit,而且生效了,如果显示的是“-rwxrwxrwT”,说明也已经加上了sticky bit,但没有生效(因为本来other就没有写的权限)。
    看看/tmp目录的权限,就是drwxrwxrwt吧
    SGID(The Set GroupID )
    加上SGID的文件,表示运行这个程序时,是临时以这个文件的拥有组的身份运行的;加上SGID的文件夹,表示在这个目录下创建的文件属于目录所有的组,而不是创建人所在的组,在这个目录下创建的目录继承本目录的SGID。
    加SGID的方法:
    chmod g+s /tmp或
    chmod 2777 /tmp
    查看是否加了SGID,用ls -l,可以看到类似这样的权限“drwxrwsrwx”,s就代表已经加上了SGID,而且生效,如果显示“drwxrwSrwx”,说明已经加上了SGID,但没有生效(因为本来group就没有执行的权限)。
    SUID(The Set UserID)
    SUID与SGID是一样的,惟一不同的是,运行时是以这个文件的拥有者身份来运行。
    加SUID的方法:
    chmod o+s /tmp或
    chmod 4777 /tmp
    同样的,加了SUID的文件权限有这类似这两种:“drwsrwxrwx”、“drwSrwxrwx”。
    看看passwd命令的权限:ll /usr/bin/passwd,是"-rwsr-x-rx",终于知道为什么执行passwd时,可以修改/etc/shadow文件了吧。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 反正我信了反正我信了 反正我不信反正我不信
2#
发表于 2011-3-30 01:53:32 | 只看该作者
学习了
您需要登录后才可以回帖 登录 | 注册发帖

本版积分规则

未经书面授权 不得复制或建立镜像,舟山东路论坛所有内容,发表者自行负担版权责任,
版权纠纷请版权所有者寻找发行者自行解决,舟山东路论坛尽力协助,但不负任何法律责任!
本站原创内容,发表者拥有版权,舟山东路论坛拥有展示权,转载请注明出处!


关于Y8 | 广告服务 | 法律声明 | 联系我们

在线客服:我是Y8BBS管理员,点此联系我! (Admin) | 我是Y8BBS野叶,点此联系我! (野叶)

小黑屋|手机版|Archiver|Y8论坛-Y8bbs.com ( 浙ICP备09036201号  

GMT+8, 2024-6-6 12:57 , Processed in 0.138864 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表