システムの起動時に通常のユーザーとしてコマンドを実行することを考えていました。現在、そうするために、次のような構文を使用しています。
su -c 'command with some arguments' user
しかし、起動時にユーザーとして自動的に実行されるユーザーごとの rc.local ファイルを ~/.rc.local に置くと有益かもしれないと考えていました。私が思いついたコードは次のようなものです:
awk -F":" '{ if ($3 >= 1000) print $1, $6 }' /etc/passwd | while read u h
do
[ -x "$h/.rc.local" ] && su -c "cd $h; ./.rc.local" $u
done
これは /etc/rc.local に追加されます。すべての非システム ユーザー (つまり、uid >= 1000) のホーム ディレクトリを検索し、ファイルが存在し、実行可能であれば、ユーザーのホーム ディレクトリに移動し、そのスクリプトをユーザーとして実行します。
root ではなくユーザーとしてスクリプトを実行することになるため、セキュリティ リスクの原因を排除するように思えますが、最近、セキュリティに関する知識が不足していることを思い出したので、次の質問を提示します。悪い考えですか?
現在、これを自宅のコンピューターでのみ実行しており、自宅のコンピューターにはシステム以外のユーザーが 1 人しかいません。数年後、私の娘はコンピューターで自分のアカウントを取得しましたが、それ以外に、完全に見知らぬ人がこれにアクセスできるわけではありません.
それで、私が見落としている潜在的なセキュリティホールはありますか? また、そのコマンドを書くためのよりエレガントな方法はありますか?