Chinaunix

标题: 关于文件权限的疑问! [打印本页]

作者: nmon    时间: 2003-01-28 16:32
标题: 关于文件权限的疑问!
用Ls -l 看出的文件权限中有时会有"s" "S"
对“S”和“s”的解释如下:
如果是用户权限中s:表示用户有x许可权限,且此文件 是一个setuid程序。S:表示用户没有许可权限,此文件是一个steuid程序。
问一下,setuid和setuid是什么?
作者: feeling    时间: 2003-01-28 18:23
标题: 关于文件权限的疑问!
顾名思义,就是设置UID和设置GID的意思啊!

一般而言,setuid、setgid都是指可执行文件的。

如果这个可执行文件是一个setuid程序,那么该程序执行时进程扮演的将不再是它原来的角色

这样吧,一个程序a.out属主为guest,guest执行之时该程序的有效UID就是guest的UID,别的用户执行之时该程序的有效UID就是别的用户的UID,也就是说用户feeling执行a.out时可能会出现一些问题:如该程序a.out要写一个文件my.log,由于该文件my.log是用户guest所有的,我feeling执行a.out就不能够写该文件。
但是引入seduid的概念后,该问题就不存在了,我feeling执行a.out后程序就具有了用户guest的UID,就可以名正言顺的去写文件my.log了。

setgid依此类推~~~~

我说明白了吗!?
我也不知道!!!
作者: feeling    时间: 2003-01-28 18:29
标题: 关于文件权限的疑问!
实例大放送

大家可以看一下可执行文件passwd,一般在/usr/bin下,也就是文件/usr/bin/passwd

我们执行passwd可以对文件/etc/passwd进行一些操作,但是处于安全性考虑文件/etc/passwd都是root用户可读写的,别的用户只有读的资格。如:
[/home/feeling]ls -al /etc/passwd
-rw-r--r--   1 root     security       2791 Jan 28 13:25 /etc/passwd

怎么办?

看程序/usr/bin/passwd吧 :
[/home/feeling]ls -al /usr/bin/passwd
-r-sr-xr-x   1 root     security      16944 Feb 11 2002  /usr/bin/passwd
看出来什么没有?
程序/usr/bin/passwd是经过了setuid的,就是说即使是普通用户执行它也会具有root用户的权限(尽管只是临时的),从而可以完成对文件/etc/passwd的写操作。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2