2013-03-02
bxd@linux:~$ sudo su
[sudo] password for bxd:
root@linux:/home/bxd# exit
exit
rm: 沒法刪除"/run/user/root/gvfs": 是一個目錄
bxd@linux:~$
------------------------------
這彷佛是一個bug, 我也不清楚怎麼回事。 解決辦法好像是在退出以前運行 umount /run/user/root/gvfs ,而後就能夠刪除這個目錄了。
參見 :
http://askubuntu.com/questions/233668/r ... -directory
https://bugs.launchpad.net/ubuntu/+sour ... ug/1077569
******************************
root下沒法讀寫文件探究
2012-08-24
1 在root權限下沒法複製~/.gvfs/,也沒法刪除~/.gvfs/
備份/home時出錯
/usr/share/backup# ./backup
cp: 沒法獲取"/home/hic/.gvfs" 的文件狀態(stat): 權限不夠
tar: 2012-08-24_17_06_53:沒法 stat: 沒有那個文件或目錄
tar: 因爲前次錯誤,將以上次的錯誤狀態退出
.....................................
6 嘗試卸載~/.gvfs/,居然成功
按照網上的說明,使用mount卸載
~# umount .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)
8 卸載以後
~# ll | grep .gvfs/
drwx------ 2 hic hic 4096 8月 21 19:15 .gvfs/
此時,已經能夠使用root進入,也能夠複製甚至刪除。
9 重啓以後此文件仍舊會出現
可是它的權限仍舊和以前未卸載同樣,root權限下不能複製和刪除。
10 在root權限下仍舊不能查看
~$ sudo -s
~# ll -d .gvfs/
ls: 沒法訪問.gvfs/: 權限不夠
11 在通常用戶權限下,卻能查看,複製甚至刪除
~$ ll -d .gvfs/
dr-x------ 2 hic hic 0 8月 24 18:43 .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也同樣。
13 小結
在備份/home的時候,不能用root,不然沒法複製.gvfs/出現錯誤。正確的作法是,以普通權限備份,這樣就能避免該錯誤的發生。