web-dev-qa-db-ja.com

ホームディレクトリ内のフォルダーおよびフォルダーを含む現在のユーザーに所有者を変更するにはどうすればよいですか?

Sudo nautilusを使用して、いくつかのフォルダーを作成し、それらのルート権限を削除したい。しかし、私はたくさんあり、ディレクトリ全体とその中のフォルダにそれをしたいです。

では、現在のユーザーに、家の中にある特定のディレクトリ内のすべてのファイルとフォルダに対する読み取り/書き込みを許可するにはどうすればよいでしょうか?

8
Vitor Abella

Sudo nautilusを使用して行われた損害を元に戻すには、rootが所有するディレクトリ(およびそのコンテンツ)の所有者になります。

特定のユーザーが所有するファイルのみを検索するテストがあるため、findを使用してこれを行うことができます。

これにより、ルートが所有するホーム内のすべてのディレクトリが検索されます。

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を省略してルートに属する任意のタイプのファイルを検索し、findがすべてのファイルに作用して再帰を行うため、-Rも省略できます。

Sudo find ~ -user root -exec Sudo chown $USER: {} +
10
Zanna

nautilus as rootのようなGUIツールを実行することは、特にこの理由で有害と見なされます(隠された機能、どこで誰がプログラムを断片的に実行するかなど)。

「許可」の問題はなく、「所有権」の問題があります。

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

非所有者が所有するファイルのリストを調整する機会を提供します。所有者は所有者を変更します。

8
waltinator

必要なのは、フォルダの所有権をユーザー(およびグループ)rootから他のユーザー(およびグループ)に変更することです。

/ home/randomFolderで作業し、所有権を処理するユーザーはvitor-abellaであると想像してください。ルート:

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

多くのファイルとサブフォルダーがある場合は時間がかかる場合がありますが、その後は順調に進んでください。

乾杯。

4
Javier Caselli