作者Tomcat (我想我疯了)
看板Linux
标题Re: [问题] setuid的疑问
时间Sun Jan 28 23:34:28 2007
※ 引述《jtorngl (燕去燕返燕归来)》之铭言:
: setuid的用途为要执行该可执行档的权限决定於档案拥有者
: 那跟直接把群组或其他人的执行权限设成跟该档案拥有者一样有何差别?
: 例如:
: -rwsr-xr-- 1 root root 35108 Jun 16 2004 /bin/ping
: -rwxr-xr-x 1 root root 35108 Jun 16 2004 /bin/ping
: -rwsr-xr-x 1 root root 35108 Jun 16 2004 /bin/ping
: 请问这三种权限的差别在哪里?
: 第一种一般使用者执行ping时会出现permission denied我懂
: 但是为什麽第二种权限设定时一般使用者执行ping时会出现
: ping:icmp open socket:Openretion not permitted
: 是因为有些指令只限定superuser才能执行的关系吗?
: 看书上对於作用在执行档的suid、sgid的用途搞不懂
: 一般用的到的好像都是设在目录上的sgid跟sticky bit而已
setuid最容易懂的例子 应该是更改密码的passwd指令 如下:
-rwsr-xr-x 1 root root 22960 Jul 17 2006 /usr/bin/passwd 档案为root所有
~
我们在更改密码的时候 必须去修改/etc/shadow里面的密码栏位
但是/etc/shadow的权限如下:
-r-------- 1 root root 1470 Dec 31 16:08 /etc/shadow
这是一般人不可读、不可写的 所以使用者无法直接更动这个档案
那为了使一般user可以更改密码 就透过让passwd指令setuid来达成
user在改密码时 可透过passwd取得修改/etc/shadow时所需的root权限
而如果把/etc/shadow权限开放给大家可修改 那就糟了...
我可以随便把大家的密码换掉 或是把这个档案砍掉
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.230.177
※ 编辑: Tomcat 来自: 140.109.230.177 (01/28 23:36)
1F:推 kewang:我刚查了一下 shadow的权限好像是640耶?? 01/29 00:56
2F:→ kewang:借转blog 01/29 00:57
3F:推 Tomcat:可能我系统预设的遮罩跟你不同吧... 我的系统是这样子没错 01/29 11:49
※ 编辑: Tomcat 来自: 140.109.41.18 (01/29 12:45)