setuidを正しく使用してください

setuidを正しく使用してください

私はsetuid警告が本当に怖いです。しかし、それを使用する方法が見つかりません。

arp -s 198.51.100.1 00:53:00:12:34:56 ユーザーとして実行できるようにしたい stevenが、arp -sにはroot権限が必要です。

これは正しいアプローチですか?

sudo nano example.sh
sudo chmod u+s example.sh
sudo chmod og-w example.sh
sudo chmod o+x example.sh
./example.sh

答え1

短いストーリー:setuidシェルスクリプトを使用しないでください(またはどのsetuid/setgidスクリプト)。

非常に長い話:シェルスクリプトでsetuid設定を許可する

回避策:呼び出しコマンドを使用してくださいsudo

sudo arp -s 198.51.100.1 00:53:00:12:34:56

stevenユーザーがパスワードを入力せずにこのコマンドを実行できるようにするには、visudo次の行を実行して追加します。

steven ALL = (root) NOPASSWD: arp -s 198.51.100.1 00\:53\:00\:12\:34\:56

他のsudoエントリがあるsteven場合NOPASSWD:最後に入れなければならない

関連情報