Linux下Root权限无法读取文件探究
1 在root权限下无法复制~/.gvfs/,也无法删除~/.gvfs/,第一感觉是难道中病毒了?
/usr/share/backup# ./backup cp: 无法获取"/home/hic/.gvfs" 的文件状态(stat): 权限不够 tar: 2012-08-24_17_06_53:无法 stat: 没有那个文件或目录 tar: 由于前次错误,将以上次的错误状态退出 /usr/share/backup /usr/share/backup# cd ~# chmod u+w .gvfs/ chmod: 无法访问".gvfs/": 权限不够 ~# ll ls: 无法访问.gvfs: 权限不够 总用量 256 drwxr-xr-x 31 hic hic 4096 8月 24 16:22 ./ drwxr-xr-x 3 root root 4096 8月 21 19:09 ../ drwxrwxr-x 9 hic hic 4096 8月 23 14:07 audio/ -rwxrwxrwx 1 hic hic 216 8月 23 09:49 backup* -rwxrwxrwx 1 hic hic 156 8月 23 09:39 backup~* -rw------- 1 root root 3611 8月 24 17:03 .bash_history -rw-r--r-- 1 hic hic 220 8月 21 19:09 .bash_logout -rw-r--r-- 1 hic hic 3658 8月 22 16:10 .bashrc -rw-r--r-- 1 hic hic 3640 8月 21 20:05 .bashrc~ drwx------ 22 hic hic 4096 8月 23 22:59 .cache/ drwxrwxr-x 3 hic hic 4096 8月 22 07:12 .compiz-1/ drwx------ 18 hic hic 4096 8月 23 22:59 .config/ -rw------- 1 hic hic 125 8月 23 07:29 .cvspass drwx------ 3 hic hic 4096 8月 21 19:15 .dbus/ -rw-r--r-- 1 hic hic 26 8月 24 16:14 .dmrc -rw-rw-r-- 1 hic hic 7255 8月 24 16:22 .emacs -rw-rw-r-- 1 hic hic 7257 8月 24 16:22 .emacs~ -rw-rw-r-- 1 hic hic 592 8月 24 11:49 .emacs.bmk drwx------ 5 hic hic 4096 8月 24 11:43 .emacs.d/ -rw-r--r-- 1 hic hic 8445 8月 21 19:09 examples.desktop -rw-r--r-- 1 hic hic 17474 8月 21 19:08 .face drwxr-xr-x 2 hic hic 4096 8月 22 14:23 .fontconfig/ drwx------ 4 hic hic 4096 8月 24 16:14 .gconf/ -rw-r----- 1 hic hic 0 8月 21 19:55 .gksu.lock drwx------ 5 hic hic 4096 8月 23 09:05 .gnome2/ drwx------ 2 hic hic 4096 8月 23 09:05 .gnome2_private/ -rw------- 1 hic hic 0 8月 24 08:05 .goutputstream-3S6QJW -rw------- 1 hic hic 0 8月 22 16:46 .goutputstream-IGBUJW -rw------- 1 hic hic 0 8月 22 16:30 .goutputstream-RSSRJW -rw------- 1 hic hic 0 8月 22 07:38 .goutputstream-XN0EJW drwxrwxr-x 2 hic hic 4096 8月 23 23:33 .gstreamer-0.10/ drwxrwxr-x 2 hic hic 4096 8月 24 17:01 GTD/ -rw-rw-r-- 1 hic hic 212 8月 24 16:14 .gtk-bookmarks d????????? ? ? ? ? ? .gvfs/ -rw------- 1 hic hic 5746 8月 24 16:14 .ICEauthority drwxr-xr-x 3 hic hic 4096 8月 21 19:15 .local/ drwx------ 3 hic hic 4096 8月 21 19:15 .mission-control/ drwx------ 4 hic hic 4096 8月 21 19:24 .mozilla/ drwx------ 3 hic hic 4096 8月 21 19:35 .pki/ -rw-r--r-- 1 hic hic 845 8月 22 16:32 .profile -rw-r--r-- 1 hic hic 843 8月 22 16:29 .profile~ drwx------ 2 hic hic 4096 8月 24 16:14 .pulse/ -rw------- 1 hic hic 256 8月 21 19:15 .pulse-cookie drwx------ 2 hic hic 4096 8月 24 10:07 .stardict/ drwx------ 3 hic hic 4096 8月 24 08:04 .thumbnails/ drwx------ 2 hic hic 4096 8月 24 11:43 .w3m/ -rw------- 1 hic hic 56 8月 24 16:14 .Xauthority -rw-rw-r-- 1 hic hic 346 8月 23 22:59 .xchm -rwxrwxrwx 1 hic hic 1378 8月 22 18:36 X.org* -rw------- 1 hic hic 3046 8月 24 17:01 .xsession-errors -rw------- 1 hic hic 9142 8月 24 11:50 .xsession-errors.old drwxr-xr-x 2 hic hic 4096 8月 21 19:15 公共的/ drwxr-xr-x 2 hic hic 4096 8月 21 19:15 模板/ drwxr-xr-x 2 hic hic 4096 8月 21 19:15 视频/ drwxr-xr-x 2 hic hic 4096 8月 23 09:46 图片/ drwxr-xr-x 3 hic hic 4096 8月 22 14:23 文档/ drwxr-xr-x 3 hic hic 4096 8月 24 08:02 下载/ drwxr-xr-x 2 hic hic 4096 8月 21 19:15 音乐/ drwxr-xr-x 4 hic hic 4096 8月 24 16:46 桌面/ ~# ll -d .gvfs/ ls: 无法访问.gvfs/: 权限不够 ~# rm -rf .gvfs/ rm: 无法删除".gvfs/": 是一个目录 ~# rm -rf .gvfs/ rm: 无法删除".gvfs/": 是一个目录
2 这是在虚拟终端下的测试结果,我进到console中和这个结果一样
~# ll | grep .gvfs/ ls: 无法访问.gvfs: 权限不够 d????????? ? ? ? ? ? .gvfs/ ~# cd .gvfs bash: cd: .gvfs: 权限不够 ~# ll -d .gvfs ls: 无法访问.gvfs: 权限不够
4 然后我使用lsattr查看文件的第二扩展文件系统属性,仍旧不行
~# lsattr .gvfs lsattr: 权限不够 当尝试对.gvfs进行stat调用时 ~# lsattr -a .gvfs lsattr: 权限不够 当尝试对.gvfs进行stat调用时
6 尝试卸载~/.gvfs/,竟然成功
~# umount .gvfs/ ~# ll | grep .gvfs/ drwx------ 2 hic hic 4096 8月 21 19:15 .gvfs/
7 ~/.gvfs是gvfs-fuse的挂载点
下面是一段关于gvfs的介绍:
What is the "fuse-daemon"? gvfs-fuse-daemon mounts your network connections as local file systems. The .gvfs dir is where any mounted network/other file systems are stored. For example: if you connect to you cellphone via the other:\\ prtocol, that directory wiil be mounted under the .gvfs dir so that legacy applications can access it.(like the terminal)
为了让支持gvfs的常规程序也能利用gvfs的强大功能,gvfs-fuse把gvfs上的文件挂载到~/.gvfs。常规应用程序可以在~/.gvfs下访问网络或者压缩文件里面的文件,而这个目录是临时的gvfs目录。.gvfs就是一个挂载的网络或者
12 找到网上的一篇说明
There is FUSE virtual filesystem mounted at ~/.gvfs. For the majority of filesystem acceses, permissions are ignored for the root user. However, FUSE virtual filesystems mounts are one of the rare exceptions. FUSE virtual filesystems normally restricted to user who mounted them. In this case , the gvfs-fuse-daemon command(run as part of your desktop session)created this mount, belonging to you, and no-one else can access it, including root.
它的意思就是,该文件可以在普通用户权限下进行更改,但是除了该用户之外,其它用户接不可能对其进行读取或者删除,包括root也一样。