+ -
当前位置:首页 → 问答吧 → 用户主目录权限的疑问?

用户主目录权限的疑问?

时间:2010-08-18

来源:互联网

假设有个用户listar,其主目录为/home/listar     

现在root在/home/listar下面建立一个文件,理所当然该文件属于root用户和root用户组

我比较疑惑的是listar竟然可以删除root刚刚建立的文件。  这个是为什么呢?


开始我还以为是设置了粘住位,不过查看了下 没有设置。

以前还从来没有注意过这个问题,刚在调试ftp服务器的时候发现了该问题。

作者: zhanglistar   发布时间: 2010-08-18

本帖最后由 churchmice 于 2010-08-18 18:17 编辑

因为删除文件取决于是否有文件所在目录的写权限
listar当然可以拥有目录/home/listar的写权限,所以即使他没有对该目录下文件的读写权限,照样可以删除之


见下面的例子,用户对于文件a没有任何权限,但是由于对当前目录有写权限,一样可以删除


QUOTE:
kernel@fairland:~$ ls -l a
---------- 1 root root 0 Aug 18 18:10 a
kernel@fairland:~$ ls -ldi .
137 drwxr-xr-x 207 kernel kernel 10072 Aug 18 18:10 .
kernel@fairland:~$ rm a
rm: remove write-protected regular empty file `a'? y



文件的信息存在什么地方?是存在目录里面的,当然也不是所有的信息都存在目录里面的,比如说文件的大小,修改时间这些个信息是存在文件的meta data里面的

再看下面的例子,由于去掉了目录的x权限,所以不能cd到该目录里面去,但是这不妨碍我们知道里面有什么文件,因为文件名字这些信息是存放在目录里面的。
但是你是不知道文件大小,修改日期这样的信息的,这些信息是存放在文件里面的,需要cd到目录里面才能够看到


QUOTE:
kernel@fairland:~$ ls -ldi test
111512 drw-r--r-- 2 kernel kernel 144 Aug 18 18:14 test
kernel@fairland:~$ ls test
ls: cannot access test/a: Permission denied
ls: cannot access test/b: Permission denied
ls: cannot access test/c: Permission denied
ls: cannot access test/d: Permission denied
a  b  c  d



最后说一句,目录其实也是特殊一点的文件

作者: churchmice   发布时间: 2010-08-18

别人放在你家里的保险箱,虽然你打不开它,但不妨碍你把它扔出去

作者: liwangli1983   发布时间: 2010-08-18