この sudo ルールにより、ユーザーはシステムの更新のみが許可されるのでしょうか?

この sudo ルールにより、ユーザーはシステムの更新のみが許可されるのでしょうか?

ユーザーがricardoを使用してシステムを更新できるようaptitudeにしながら、 sudo を使用して他のコマンドを実行できないようにする sudo ルールを設計したいと考えています (彼は問題のあるユーザーです)。このルールには、私が見逃している落とし穴がありますか?

ricardo  ALL=(root) /usr/bin/aptitude

Ricardo は のみを使用しaptitude、 は使用しませんapt-get。また、現時点では Ubuntu がどこにもインストールされていないため、 が/usr/bin/aptitude許可する正確な正しいファイルではない可能性があることを理解しています。

このルールに落とし穴がある場合、どうすれば改善できるでしょうか?

答え1

aptitudeこのコマンドは、リポジトリ キャッシュの更新とシステムの安全なアップグレードの実行以外の目的でのユーザーの使用を制限します。

ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude safe-upgrade

同様のコマンドを使用すると、ユーザーは完全なアップグレードを実行できますが、それ以上のことはできません。

ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude full-upgrade

パーaptitude のドキュメント (10.04)safe-upgrade

インストールされたパッケージを最新バージョンにアップグレードします。インストールされたパッケージは、使用されていない限り削除されません。

対照的に、full-upgrade

インストールされたパッケージを最新バージョンにアップグレードし、必要に応じてパッケージを削除またはインストールします。このコマンドは safe-upgrade よりも保守的ではないため、不要なアクションを実行する可能性が高くなります。ただし、safe-upgrade ではアップグレードできないパッケージをアップグレードすることは可能です。

ユーザーに実行を許可するかどうかは、ご自身の判断で決めてください。不明な場合は、 のみを許可する最初のルールを使用してくださいsafe-upgrade

ユーザーにパッケージのインストールを許可したい場合(セキュリティ上の利点は大幅に減少しますが、仮定の話です)、コマンド*の後にを含める必要があります。aptitude

ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude safe-upgrade, /usr/bin/aptitude install *

ricardoそうでない場合、ユーザーはコマンドの実行を許可されていないというエラー メッセージが表示されます/usr/bin/aptitude install <package_name>

答え2

sudo -lユーザーが実行できるコマンドを確認するには、を使用します。たとえば、ricardo が実行できるコマンドを確認するには、次のようにします。

sudo -ll -U ricardo

彼が適性を発揮できるかどうかを見るために、

sudo -ll -U ricardo /usr/bin/aptitude

これは、sudo によって展開されたコマンド名を出力するか、ユーザーがコマンドの使用を許可されていない場合はコード 1 で終了します。

これは、最近の Debian ベースのシステムであればテスト用に動作するはずです。構文は Ubuntu 固有のものではありません。

ソース:男須藤

答え3

実際には何も見えない間違っているsudoersの行で。残念ながら、私sudoは の設定をあまりいじったことがないので、その場合、私のアドバイスは信頼できないかもしれません。幸い、私ができる私が安全だとわかっている行をお伝えします:

ricardo ALL=/usr/bin/aptitude

この行は、ricardo がやaptitudeなどの sudo 対応グループのメンバーでない限り、ricardo が root としてのみ実行できることを保証します。sudoadmin

ソース:Ubuntu で Sudo を微調整および構成する 8 つの方法 - How-to Geek

関連情報