Root以外のユーザーがaptまたはrpmを使用してシステム全体にパッケージをインストールできるようにすることは可能ですか?
私が現在作業している場所では、Linuxボックスのセットアップが古くなっており、管理者は要求に応じてユーザーのすべてのインストールを実行するのにうんざりしているため、すべてのユーザーに完全なSudo権限を与えることを考えています。これには明らかなセキュリティ上の欠点があります。だから、私は通常のユーザーがソフトウェアをインストールし、それをアップグレードして削除することを許可する方法があるかどうか疑問に思っていますか?
Sudoで許可するコマンドを指定できます。無制限のアクセスを許可する必要はありません。
username ALL = NOPASSWD : /usr/bin/apt-get , /usr/bin/aptitude
これにより、ユーザー名はパスワードなしでSudo apt-get
およびSudo aptitude
を実行できますが、他のコマンドは許可されません。
packagekit を PolicyKit と組み合わせて使用すると、Sudoよりもさらに細かいレベルの制御ができます。
ユーザーがパッケージをインストール/削除できるようにすると、リスクが生じる可能性があります。 libc6、dpkg、rpmなどの必要なソフトウェアをアンインストールするだけで、システムを非常に簡単に機能しなくすることができます。定義されたアーカイブから任意のソフトウェアをインストールすると、攻撃者は古いソフトウェアや悪用可能なソフトウェアをインストールし、ルートアクセスを取得できます。私の意見の主な質問は、あなたはあなたの従業員をどれだけ信頼していますか?
もちろん、管理チームは、人形、シェフなどの構成管理システムの使用を開始したり、システムを管理するために宇宙遊泳を調査したりすることもできます。これにより、中央システムからシステムを構成および管理できるようになります。
マニュアルページから:
aptdcon
:パッケージ管理タスクを実行できます。 aptdaemonを使用したソフトウェアのインストールまたは削除。このプログラムを実行するためにrootである必要はありません。
username ALL = NOPASSWD : /usr/bin/yum, /bin/rpm
私もそのようなものを探しましたが、何も表示されなかったので、この簡単なソリューション「softwarechannels」をコーディングしました。
https://github.com/alfem/softwarechannels
一般的な(管理者ではない)ユーザーが制限付きカタログからパッケージをインストールできるようにする非常にシンプルなシステムです。
単純なテキストファイルで「チャネル」(パッケージのグループ)を定義し、ソフトウェアチャネルを起動する権限をユーザーに与えるだけです。
彼らは彼らのunixグループと一致するチャンネルのパッケージだけを見ます。