我犯了一个错误。我使用 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)
它:
-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)