![如何递归地将文件夹的所有者更改为当前用户?](https://linux22.com/image/1088260/%E5%A6%82%E4%BD%95%E9%80%92%E5%BD%92%E5%9C%B0%E5%B0%86%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E6%89%80%E6%9C%89%E8%80%85%E6%9B%B4%E6%94%B9%E4%B8%BA%E5%BD%93%E5%89%8D%E7%94%A8%E6%88%B7%EF%BC%9F.png)
我sudo nautilus
创建了一些文件夹,我想删除这些文件夹的 root 权限。但我有很多文件夹,我想对整个目录及其包含的文件夹执行此操作。
那么如何允许当前用户读/写特定目录内的所有文件和文件夹/home
?
答案1
要恢复造成的损害,sudo nautilus
您应该使自己成为 root 拥有的任何目录(及其内容)的所有者。
您可以使用find
它来执行此操作,因为它有一个测试可以仅查找特定用户拥有的文件。
这将找到你主目录中所有由 root 拥有的目录:
sudo find ~ -type d -user root
然后,您可以重复该find
命令并添加要执行的操作 - 递归地将所有找到的目录及其内容的所有权更改为当前用户:
sudo find ~ -type d -user root -exec sudo chown -R $USER: {} +
解释:
~
主目录-type d
仅查找目录-user root
仅查找属于根目录的内容-exec
对找到的内容执行以下命令sudo chown -R
递归更改所有者$USER
当前用户:
还可以将组更改为特定用户
更有效地,你可以省略-type d
查找属于 root 的任何类型的文件,也可以省略-R
asfind
将通过对所有文件进行操作来为你执行递归
sudo find ~ -user root -exec sudo chown $USER: {} +
答案2
运行 GUI 工具(例如nautilus
)root
由于这个原因被认为是有害的,其中包括(隐藏功能、能够从谁知道的地方默默运行程序片段,...)。
您没有“许可”问题,而是“所有权”问题。
root
要查找所有由(实际上由其他人拥有) 拥有的文件,请执行以下操作:
sudo find $HOME \! -user $USER
要将所有权改回给您,您可以
sudo chown -R $(id -u):$(id -g) $HOME
但这会改变以下所有文件的所有权$HOME
sudo find $HOME \! -user $USER >/tmp/list-of-files
# edit the list of files, and delete file files you don't want to chown
nano /tmp/list-of-files
xargs sudo chown $(id -u):$(id -g) </tmp/list-of-files
让您有机会调整非您拥有的文件列表,这些文件的所有权将改回给您。
答案3
您需要做的是从用户(和组)更改文件夹的所有权根您想要的其他用户(和组)。
想象一下,你想从事/home/随机文件夹,并且您要处理所有权的用户是维托尔阿贝拉,您需要做的只是以 root 身份执行此操作:
chown -R vitor-abella:vitor-abella /home/randomFolder
如果有很多文件和子文件夹,则可能需要一段时间,但之后您应该就可以顺利完成了。
干杯。