如何将所有者更改为文件夹中的当前用户,并将其包含在主目录中?


12

使用sudo nautilus我创建了一些文件夹,我想摆脱它们的root权限。但是我有很多,我想对整个目录及其包含的文件夹进行处理。

那么,如何允许对当前用户的读写操作是对家庭内部特定目录中的所有文件和文件夹的呢?

Answers:


14

要恢复使用损坏造成的损害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的任何类型的文件,也可以省略-Ras,find它将通过对所有文件执行操作来为您进行递归

sudo find ~ -user root -exec sudo chown $USER: {} +

您必须find使用sudosudo find ...)来检查root拥有0700保护的子目录及其下的所有内容。同上进行维修。
waltinator

“捍卫一切可能”还是“捍卫一切可能”?你的选择。
waltinator

@waltinator肯定:)感谢您提及它,以便我改善。我只是尽量不要使用sudo直到需要
Zanna 2016年

10

运行GUI工具(例如nautilusroot出于这个原因被认为是有害的)以及其他功能(隐藏功能,从谁知道哪里静默运行程序片段的能力……)。

您没有“权限”问题,而有“所有权”问题。

要查找所有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

让您有机会调整非您拥有的文件列表,这将使文件的所有权变回您。


5

您需要做的是将文件夹的所有权从用户(和组)根目录更改为所需的其他用户(和组)。

假设您要在/ home / randomFolder上工作,并且要处理所有权的用户是vitor-abella,您需要做的就是简单地以root用户身份执行此操作:

chown -R vitor-abella:vitor-abella /home/randomFolder

如果有很多文件和子文件夹,可能要花一些时间,但是在那之后您应该会按计划进行。

干杯。


3
我使用$(id -u):$(id -g),而不是让OP想像和$HOME/randomFolder
waltinator
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.