ユーザーがルートアクセス/権限で特定のバイナリのみを実行できるようにする

ユーザーがルートアクセス/権限で特定のバイナリのみを実行できるようにする

特定のユーザーがsudoのみを使用できるようにしたいと思います/sbin/iptables

iptablesを設定するbashスクリプトがあります。問題は、これを/sbin/iptablessudo対応に設定するだけでは十分ではないということです。スクリプト自体もsudo可能でなければなりません。

問題は、このファイルをユーザーが編集できる(設定を変更できる)、rootですべてのコマンドを実行できることです。

この問題を解決する正しい方法は何ですか?

ベストアンサー1

2つのアプローチを見ることができます。

  1. ユーザーに無制限の/sbin/iptables使用を許可しsudo(これは危険です。これはユーザーを何とか信頼するという意味です)、ユーザーの権限でスクリプトを実行します。このスクリプトは必要sudoに応じて呼び出されます。/sbin/iptablesこれは最終的に定期的にいくつかのパスワードを入力する必要があるため、スクリプトがすばやく実行されると仮定します。

    • 利点:スクリプトへの信頼は必要ありません。
    • 欠点:すでに述べたように、/sbin/iptablesユーザーに無制限のアクセスを提供する危険性があります。
  2. スクリプトを呼び出さなければユーザーを許可しませんsudo

    • 利点:/sbin/iptablesスクリプトによって使用が制限されます。
    • 短所:スクリプトは完璧でなければなりません。

上記の質問に関連して:スクリプト所有者がsayでroot一般的な権限を持っている場合rwxr-xr-x、他のユーザーはそれを変更することはできず、実行することができます(最終的にはsudoより多くの権限を取得する必要があります)。

回避策2の場合、シェルスクリプト(より強力なバイナリ/プログラム)の場合は、スクリプトの実行を変更できる環境変数といくつかの外部要因に注意してください。 sudo構成が潜在的に有害な各変数の定義を正しくリセットしていることを確認してください。

- 1.実際に必要に応じて
設定sudoできますNOPASSWD

おすすめ記事