特定のユーザーがsudoのみを使用できるようにしたいと思います/sbin/iptables
。
iptablesを設定するbashスクリプトがあります。問題は、これを/sbin/iptables
sudo対応に設定するだけでは十分ではないということです。スクリプト自体もsudo可能でなければなりません。
問題は、このファイルをユーザーが編集できる(設定を変更できる)、rootですべてのコマンドを実行できることです。
この問題を解決する正しい方法は何ですか?
ベストアンサー1
2つのアプローチを見ることができます。
ユーザーに無制限の
/sbin/iptables
使用を許可しsudo
(これは危険です。これはユーザーを何とか信頼するという意味です)、ユーザーの権限でスクリプトを実行します。このスクリプトは必要sudo
に応じて呼び出されます。/sbin/iptables
これは最終的に定期的にいくつかのパスワードを入力する必要があるため、スクリプトがすばやく実行されると仮定します。- 利点:スクリプトへの信頼は必要ありません。
- 欠点:すでに述べたように、
/sbin/iptables
ユーザーに無制限のアクセスを提供する危険性があります。
スクリプトを呼び出さなければユーザーを許可しません
sudo
。- 利点:
/sbin/iptables
スクリプトによって使用が制限されます。 - 短所:スクリプトは完璧でなければなりません。
- 利点:
上記の質問に関連して:スクリプト所有者がsayでroot
一般的な権限を持っている場合rwxr-xr-x
、他のユーザーはそれを変更することはできず、実行することができます(最終的にはsudo
より多くの権限を取得する必要があります)。
回避策2の場合、シェルスクリプト(より強力なバイナリ/プログラム)の場合は、スクリプトの実行を変更できる環境変数といくつかの外部要因に注意してください。 sudo構成が潜在的に有害な各変数の定義を正しくリセットしていることを確認してください。
- 1.実際に必要に応じて
設定sudo
できますNOPASSWD
。