如何将root权限复制到当前用户?

dal*_*y42 8 permissions chmod

我犯了一个错误。我使用 sudo 命令复制了一个包含许多子目录和文件的目录。因此,只有 root 有权对文件执行任何操作。

我可以以某种方式以递归方式为每个人/我自己复制 root 的权限吗?

Wil*_*ilf 16

以 root 身份复制东西会使东西归 root 所有(我认为 gksudo 只是为了阻止程序设置等归 root 所有 - 请参阅此处 - 您应该能够使用以下方法修复它:

sudo chown -R $USER:$USER /<PATH>/<TO>/<COPIED>/<FOLDER>
Run Code Online (Sandbox Code Playgroud)

它:

  • 使用chown
  • -R 递归修改目录和文件
  • $USER 被外壳程序(命令行、bash 等)替换为您的用户名,因此它告诉它使文件和文件夹的用户和组 ID 成为您的用户。
  • 在指定的路径上执行它 - 例如/<PATH>/<TO>/<COPIED>/<FOLDER>。不要做它只是//usr等等,因为它可能会破坏系统。

例如:

$ touch file
$ sudo cp file filert
$ ls -l | grep file
-rw-rw-r--.  1 wilf wilf         0 Jul  2 09:42 file
-rw-r--r--.  1 root root         0 Jul  2 09:43 filert
Run Code Online (Sandbox Code Playgroud)

以上命令。创建一个名为 的文件file,以 root 身份将其复制到filert,然后显示文件属性。当文件被复制为 root 时,生成的文件应该归 root 所有 - 这就是你的文件发生的情况。通过上面的例子,filert普通用户可以使用:

$ sudo chown $USER:$USER filert 
$ ls -l | grep file
-rw-rw-r--.  1 wilf wilf         0 Jul  2 09:42 file
-rw-r--r--.  1 wilf wilf         0 Jul  2 09:43 filert
Run Code Online (Sandbox Code Playgroud)