我一直试图将文件夹的所有权从“root”更改为“caleb”(用户)。当我尝试在终端中更改它时,它显示它已被更改,但当我在 Nautilus 中查看该文件夹的属性时,它仍由 root 拥有。
终端所有权变更
caleb@Caleb-Linux:~$ sudo chown caleb -v /opt
[sudo] password for caleb:
changed owndership of '/opt' from root to caleb
输出ls -ld
:
caleb@Caleb-Linux:~$ ls -ld /opt
ddrwxrwx--- 4 caleb caleb 4096 May 10 21:37 /opt
但 Nautilus 没有显示所有权变更
答案1
您的命令会更改目录的权限/opt
,但不会更改其内容。要验证所有权是否已更改,请使用:
ls -ld /opt
如果您忘记了-d
,这将列出的内容/opt
,而不是/opt
对象本身。
如果您不仅想更改其/opt
自身的所有权,还想更改其包含的所有内容的所有权,则需要使用-r
(递归) 选项chown
。
至于 GUI 没有显示更新的所有权/opt
;这可能只是因为它没有重新读取文件系统并依赖于以前扫描的信息。
在 Ubuntu 17.10 上,我可以轻松重现我认为您遇到的问题。当我在 Nautilus 中打开根目录(“计算机”),右键单击“opt”,然后查看“属性”时,它归 root 所有。如果我在 shell 中将所有权更改为我自己,那么这个窗口当然不会改变。如果我关闭“属性”窗口,然后再次右键单击“opt”以查看属性,它仍然表明它归 root 所有。
要让 Nautilus 重新读取最新的元数据并显示最新的权限,请按 Ctrl-R 刷新。或者导航到另一个文件夹并返回。