0

システムの起動時に通常のユーザーとしてコマンドを実行することを考えていました。現在、そうするために、次のような構文を使用しています。

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 人しかいません。数年後、私の娘はコンピューターで自分のアカウントを取得しましたが、それ以外に、完全に見知らぬ人がこれにアクセスできるわけではありません.

それで、私が見落としている潜在的なセキュリティホールはありますか? また、そのコマンドを書くためのよりエレガントな方法はありますか?

4

1 に答える 1

0

@rebootこれは、ユーザーごとの crontabの機能と重複します。

于 2012-11-04T01:34:19.110 に答える