当你创建一个文件时,你就是该文件的属主这句话不对

发表于:2007-07-04来源:作者:点击数: 标签:
在复习suid,sgid时,我发现 如果root给mkdir设置了suid位,也就是4755,-rwsr-xr-x,那么假如一个uid500,gid500,umask=0002的普通用户mike在/下面创建目录文件aa的话 我们可以用ls-l发现这个文件属性为 drwxrwxr-xrootmikeaa 显然这个文件属主为root,并且m

在复习suid,sgid时,我发现
如果root给mkdir设置了suid位,也就是4755,-rwsr-xr-x,那么假如一个uid500,gid500,umask=0002的普通用户mike在/下面创建目录文件aa的话
我们可以用ls -l发现这个文件属性为
drwxrwxr-x    root   mike   aa

显然这个文件属主为root,并且mike不能对aa执行rmdir操作,权限不够!

而如果mike在自己的主目录/home/mike/下面创建aa时
该文件属性依然为
drwxrwxr-x    root   mike   aa
可见属主还是root
但是此时mike可以对aa进行rmdir操作

可能有人疑问,为什么同一个文件同一个创建人而且属主都是root,一个可以删除而另一个不行呢?
我们应该明确的是两点
1,对一个目录文件(或普通文件)进行rmdir(或rm)操作不是取决于该文件的权限,而是取决于该文件的父目录的权限;
/aa的父目录为/,默认为drwxr-xr-x root root,所以mike无权限对/下面任何文件(不包括再下一层文件)进行rmdir操作(rmdir 须有wx权限)
/home/mike/aa的父目录为/home/mike,默认为drwx------ mike mike,所以mike在这个目录下拥有rwx权限,可对该目录下任何目录文件rmdir,不管这个目录文件属主及权限情况怎么样~~
2,"当你创建一个文件时,你就是该文件的属主"这句话有局限性!如果对mkdir,touch等可以用来创建文件的命令设置了suid的话,那文件的属主就成了root,而创建者并不是属主!因为有了suid,你在执行该命令的时候,你就相当于root在执行这个命令!

所以我做个比喻的话,root设置的suid就相当于圣火令,见圣火令如见教主(root)~~哇哈哈~

以上是我复习suid的一点心得,如有不对,请大家指正!

 與你無關 回复于:2004-08-29 20:10:34
还是不太明白
我只知道我用root在服务器上解压一个文件到用户xxx的目录后
用户xxx登录FTP不可以删除,或是改变这个文件的属性,只能在服务器上用root来操作。
很多用过FTP的人都会遇到FTP上文件无法删除的情况,只能用软件来删。。

 w662000 回复于:2004-08-29 20:28:53
请问
用户xxx的目录
这个的权限是什么?

如果是777的话,不管这个目录属主属组怎么样
解压到这个目录下的文件,任何用户都可以删除之

 不想发言 回复于:2004-08-29 20:44:09
That right. So suid and sgid is hacker want to get……

 bjgirl 回复于:2004-08-29 20:46:10
做个实验,就知道啦 :oops:

 核武器 回复于:2004-08-29 22:16:17
这就是沿途权限的问题,如果假设第一道关卡不允许你通过,那即使后面的关卡都是你说了算,你还是不能越权!

 網中人 回复于:2004-08-29 23:30:09
關於 suid , 提供一個參考:
http://bbs.chinaunix.net/forum/viewtopic.php?t=381150

至於 permission 的練習與思考, 也可參考:
http://phorum.study-area.org/viewtopic.php?t=17538

 w662000 回复于:2004-08-30 00:07:26
在netman提供的连接

[quote:309f918826]
至於 permission 的練習與思考, 也可參考: 
" target="_blank">http://phorum.study-area.org/viewtopic.php?t=17538
[/quote:309f918826]

第一题

1) 假設當前目錄下只有 d1 這個目錄及 f1 這份檔案。 
請問你要如何將 d1 複制出 d2 目錄? 
命令: 

當成功複制後,再跑一次該命令, 
請問其結果與上一次執行結果有何不同? 
說明: 


我就用了:
[code:1:309f918826]
cp -R d1 d2
[/code:1:309f918826]
搞定!
再跑一次无任何提示
文件也无变化。。

不知netman兄的不同指的是?[/url]

 w662000 回复于:2004-08-30 00:31:06
我错了!!

第二次由于d2的存在

cp -r d1 d2
已经把整个d1目录复制进了d2
而不是第一次简单的不存在d2就建立一个和d1一样的d2!

 與你無關 回复于:2004-08-30 01:05:54
我是用useradd加的一个用户
不知道如何看他属于哪个组,有哪些权限  :(

 bjgirl 回复于:2004-08-30 01:20:05
[quote:8078b2a727="與你無關"]我是用useradd加的一个用户
不知道如何看他属于哪个组,有哪些权限  :([/quote:8078b2a727]
会自动生成一个与你建立的用户同名的组,权限由umask的值决定

 牙齿晒太阳 回复于:2004-08-30 11:35:52
权限问题好麻烦的哦。你在root下修改的参数
换到其他用户下再看,就没有修改过

 netzh 回复于:2004-08-30 23:25:39
redhat的书里经常会有对目录setgid,那结果楼主不放也写出来吧

 li_haigang 回复于:2004-09-02 19:57:38
netman讲的真是透彻!

 零二年的夏天 回复于:2004-09-02 20:12:31
[quote:c8dbe0037c="牙齿晒太阳"]权限问题好麻烦的哦。你在root下修改的参数
换到其他用户下再看,就没有修改过[/quote:c8dbe0037c]

[color=blue:c8dbe0037c]/etc/bashrc[/color:c8dbe0037c]
[code:1:c8dbe0037c]if [ "`id -gn`" = "`id -un`" -a `id -u` -gt 99 ]; then
        umask 002
else
        umask 022
[/code:1:c8dbe0037c]

 zhheng 回复于:2004-09-08 21:51:13
suid是不是就是什么粘怠位?

原文转自:http://www.ltesting.net