《黑客防线》↑在攻与防的对立统一中寻求突破!2001年创刊的黑客技术专业刊物!

设为首页
收藏本站
联系我们
网站导航


软件下载 - 专题资源 - 高级Linux网管培训班 - 浏览软件 - [第12课]文件与目录的特殊权限
[第12课]文件与目录的特殊权限
授权类型:
运行环境:
软件分类: 高级Linux网管培训班
文件大小: 26.03MB
星级评定:
官方网站: http://
发 布 人:
发布时间: 2008-1-8 8:30:55
下载权限:
下载次数: 4 人次
下载计费: 0 分, 0 金币 链接报错 收藏本页
下载地址: 下载地址1
特别说明: 1.本站非VIP资料均从网上收集,仅供网络安全爱好者学习、研究所用,请勿用于非法用途,违者责任自负。
2.本站VIP资料专为VIP会员提供,至2008年2月1日起,所有VIP软件、课程均设置有压缩包密码,此密码一月一更新。获取当月VIP压缩密码请到“VIP论坛”、“服务版”查看置顶贴,或在登陆VIP会员帐户后,点击如下连接进入:VIP资料每月密码公布
3.本站VIP资料专署于所有VIP会员共同所有,任何个人、团体共享、发布、盗连均视为侵权,一经发现,严惩不怠!
                黑客防线2007年 linux班
           http://www.hacker.com.cn


第12讲:文件与目录的特殊权限

1 特殊权限
2 file



-------------------
文件特殊权限: SUID/SGID/Sticky Bit

我们前面一直提到关于文件的重要权限,那就是 rwx 这三个读、写、执行的权限。
好~我们先来看下这个例子
[root@localhost ~]# ls -l /usr/bin/passwd
不是只有 rwx 吗?还有其它的特殊权限啊?啊.....头又开始昏了~ @_@ 呵呵,不要担心啦,我们这里先
不谈这两个权限,只是先介绍一下而已。 因为要了解这几个特殊的权限,必须要先具有账号的 ID 概念,
以及程序的进程 (process) 概念后, 才能够进一步的了解这个特殊权限所代表的意义。

----------
Set UID
会制作出 s 与 t 的权限,是为了让一般使用者在执行某些程序的时候, 能够暂时的具有该程序拥有者的
权限。 举例来说好了,我们知道账号与密码的存放文件其实是 /etc/passwd 与 /etc/shadow 。 而
/etc/shadow 这个文件的权限是什么?是(-r--------)。且他的拥有者是 root。在这个权限中,仅
有 root 可以(强制)储存,其它人是连看都没有办法看的。
但是如果我偏偏要使用 pliori 这个一般身份使用者去更新自己的密码时,会是什么样子呢?
总不能连自己的密码都改不了吧。。。。这个时候呢?
使用的就是 /usr/bin/passwd 这个程序,是可以更新自己的密码的,
也就是说, pliori 这个一般身份使用者可以存取 /etc/shadow 这个密码文件。
但怎么可能?
明明 /etc/shadow 就是没有 pliori 可以存取的权限啊。      
呵呵~这就是 s 这个权限的帮助了。
当 s 这个权限在 user 的 x 时,也就是类似上面例子的 -rwsr-xr-x-,称为 Set UID。

简称为 SUID , 这个 UID 代表的是 User 的 ID ,而 User 代表的则是这个程序 (/usr/bin/passwd) 的
拥有者 (root )。 那么由上面的定义中,我们知道了,当 pliori 这个使用者执行 /usr/bin/passwd
时,他就会(暂时)的得到文件拥有人 root 的权限。


SUID 仅可用在(二进制制文件(binary file))上, SUID 因为是程序在执行的过程中拥有文件拥有者的
权限,因此,他仅可用于 binary file , 不能够用在批处理 (shell script) 上面的!这是因为 shell
script 只是将很多的 binary 执行文件放在一起执行而已。所以 SUID 的权限部分,还是得要看 shell script
呼叫进来的程序的设置, 而不是 shell script 本身。当然,SUID 对于目录也是无效的~这点要特别留
意。

-------------
Set GID
进一步来说,如果 s 的权限是在 group 时,那么就是 Set GID ,简称为 SGID。 SGID 可以用在两个部
分。
        文件:如果 SGID 是设置在 binary file 上面,则不论使用者是谁,在执行该程序的时候, 他
                的有效群组 (effective group) 将会变成该程序的群组所有人 (group id)。
        目录:如果 SGID 是设置在 A 目录,则在该 A 目录内所建立的文件或目录的 group ,将会
                是 此 A 目录的 group
一般来说, SGID 很多用在特定的多人团队的项目开发上, 在系统当中应该会比较少这个设置



Sticky Bit
这个 Sticky Bit 目前只针对目录有效,对于文件已经没有效果了。
SBit 对于目录的作用是:(在具有SBit 的目录下,使用者若在该目录下具有 w 及 x 的权限,
则当使用者在该目录下建立文件或目录时,
只有文件拥有者与 root 才有权力删除)。换句话说:当用户张三在 A 目录下是拥有 group 或者是
other 的项目,并且拥有 w 的权限, 这表示(张三这个使用者对该目录内任何人建立的目录或文件均可进行
"删除/更名/移动" 等动作。) 不过,如果将 A 目录加上了 Sticky bit 的权限项目时, 则张三只能够针对
自己建立的文件或目录进行删除/更名/移动等动作。

更多关于 SUID/SGID/Sticky Bit 的介绍,我们会在 程序与资源管理 中再次提到的,目前,先有个简
单的基础概念就好了。



------------------------
SUID/SGID/SBIT 权限设置
前面介绍过 SUID 与 SGID 的功能,那么如何开启文件使成为具有 SUID 与 SGID 的权限呢?! 这就需要
刚刚的数字更改权限的方法了!现在你应该已经知道数字型态个更改权限方式为(三个数字)的组合, 那
么如果在这三个数字之前再加上一个数字的话,那最前的面数字就代表这几个属性了!
( 注:通常我们使用 chmod xyz filename 的方式来设置 filename 的属性时,
是默认的没有 SUID, SGID 及 Sticky bit的)
        4 为 SUID
        2 为 SGID
        1 为 Sticky bit
假设要将一个文件属性改为(-rwsr-xr-x)时,由于 s 在使用者权限中,所以是 SUID ,因此, 在原先
的 755 之前还要加上 4 ,也就是:( chmod 4755 filename )来设置

(注意:必须了解 SUID 不能用在目录上,而 SBIT 不能用在文件上的)

[root@localhost ~]# cd /tmp
[root@localhost tmp]# touch test
[root@localhost tmp]# chmod 4755 test; ls -l test
-rwsr-xr-x  1 root root 0 Jul 20 11:27 test
[root@localhost tmp]# chmod 6755 test; ls -l test
-rwsr-sr-x  1 root root 0 Jul 20 11:27 test
[root@localhost tmp]# chmod 1755 test; ls -l test
-rwxr-xr-t  1 root root 0 Jul 20 11:27 test
[root@localhost tmp]# chmod 7666 test; ls -l test
-rwSrwSrwT  1 root root 0 Jul 20 11:27 test
注意了,怎么会出现大写的 S 与 T 呢?不都是小写的吗?
因为 s 与 t 都是取代 x 这个参数的,但是我们修改属性的时候是666
也就是说, user, group 以及 others 都没有 x 这个可执行的标志,
所以,这个 S, T 代表的就是(空的)。为什么呢?
比如SUID 是表示(该文件在执行的时候,具有文件拥有者的权限),但是文件
拥有者都无法执行了,哪里来的权限给其它人使用?当然就是空的了```


------------------

文件类型:file
如果你想要知道某个文件的基本数据,例如是属于 ASCII 或者是 data 文件,或者是 binary , 且其中
有没有使用到动态函数库 (share library) 等等的信息,就可以利用 file 这个指令来查看。
举例来说:
[root@localhost ~]# file ~/.bashrc
/root/.bashrc: ASCII text  <== 告诉我们是 ASCII 的纯文字文件
[root@localhost ~]# file /usr/bin/passwd
/usr/bin/passwd: setuid ELF 32-bit LSB executable, Intel 80386, version 1
(SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), stripped
        32位可执行文件
        uses shared libs
        适合于 Intel 的 386 以上的硬件,很清楚

透过这个指令,我们可以简单的先判断这个文件的格式

评论作者:
电子邮件:
评论内容:
投票评价:
验 证 码:
图片包含4个随机字符,点击刷新
请输入上面图片中的随机字符