各家庭ユーザーを再帰的に選択します。

各家庭ユーザーを再帰的に選択します。

いいですね。私のホームフォルダには約100のディレクトリがあり、各ディレクトリはホームユーザーが所有しています。場合によっては、一部のファイルを手動でルートに置き換える必要があるため、権限が混乱し、一部のファイルはもはやそのユーザーに属しません。この問題を解決するには、常にホームディレクトリで次のコマンドを使用する必要があります。

chown -R user:user user/

これで、100人のユーザーすべてに対してこれを行うことができないため、いくつかのショートカットを探しています。

私は何をするのか知りたいです:

chown -R *:* *

答え1

完全な答えは

1) たとえば、ファイルを開きます。 vi chown_homedirs

2)次のコードを入力してください

#!/bin/bash

cd /home &&    
for h in *
  do 
    chown -R "$h:$h" "$h"; 
  done

3) ファイル保存

4)chmod +x chown_homedirs

5) 実行./chown_homedirs

注:ユーザーディレクトリにスペースがある場合は、必ず拡張子を引用する必要があります。拡張を参照しないと、操作が失敗し、予期しない結果が生じる可能性があります。

答え2

あなたはそれを使用することができます統計資料ファイルのユーザーとグループの所有権を取得し、それを使用してファイルを更新します。

#!/bin/bash
cd /home
for file in *
do
    user=$(stat -c %U "$file")
    group=$(stat -c %G "$file")
    echo chown -R "$user":"$group" "$file"
done

これには、所有者/グループ/ディレクトリが同じでない場合が含まれます。テスト結果が問題ない場合は、もちろんエコーを削除してください。

関連情報