特定のシステムユーザーのumask値を見つける方法は?

特定のシステムユーザーのumask値を見つける方法は?

特定のシステムユーザーのumask値を見つけて、そのユーザーが新しいディレクトリを作成したときにスクリプトが実行されたときにそれを適用したいと思います。 Ubuntu 16.04および20.04システムを使用しています。

私が見つけることができる最も近い答えはこの問題。一言も知りませんでしたが、台本を書いてみました。

for user in $(awk -F: '{print $1}' /etc/passwd); 
do 
    printf "%-10s" "$user" ; su -c 'umask' -l $user 2>/dev/null
done

許可された回答に「root」という単語が印刷され、システムがハングしました。

特定のシステムユーザーのumask値を見つける方法は?

答え1

特定の時間にユーザーのumaskを確認するには、umaskそのユーザーでコマンドを実行するだけです。質問に提供されたスクリプトはファイルからユーザーのリストを取得し、/etc/passwdumaskユーザーに対して連続してコマンドを実行します。しかし、ここにはいくつかの問題があります。その中で最も重要なのは、root以外のユーザーとして実行すると動作が停止し、パスワードを待つことです。

ユーザーはいつでも自分のumaskを変更できます(実際のユーザーは変更する必要はありません)。持つumask(umaskはプロセスによって異なります)なので、毎回依存してはいけません。シェルスクリプトを実行するときにユーザーが持っているumaskが何であるかを知りたい場合は、umaskシェルスクリプトにコマンドを追加するだけです。または、umaskを完全に無視してchmodディレクトリを目的のモードに設定します。

関連情報