特定のシステムユーザーの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/passwd
各umask
ユーザーに対して連続してコマンドを実行します。しかし、ここにはいくつかの問題があります。その中で最も重要なのは、root以外のユーザーとして実行すると動作が停止し、パスワードを待つことです。
ユーザーはいつでも自分のumaskを変更できます(実際のユーザーは変更する必要はありません)。持つumask(umaskはプロセスによって異なります)なので、毎回依存してはいけません。シェルスクリプトを実行するときにユーザーが持っているumaskが何であるかを知りたい場合は、umask
シェルスクリプトにコマンドを追加するだけです。または、umaskを完全に無視してchmod
ディレクトリを目的のモードに設定します。