管理者以外のユーザーがaptまたはrpmでパッケージをインストールできるようにしますか?


13

非rootユーザーがaptまたはrpmを使用してシステム全体にパッケージをインストールできるようにすることは可能ですか?

私が現在働いている場所では、Linuxボックスの設定が古くなっており、管理者はリクエストに応じてユーザーのすべてのインストールを行う必要がなく、すべてのユーザーに完全なsudo権限を与えることを考えています。これには明らかなセキュリティ上の欠点があります。だから私は普通のユーザーがソフトウェアをインストールできるようにする方法があるのだろうか-それをアップグレードして削除するのだろうか?


4
パッケージをインストールする特権を与えると、ユーザーはsetuid-rootシェルを使用してパッケージをインストールするだけでよいため、基本的には完全な管理者権限が与えられます。
-camh

@camh hrm ..吟味されたリポジトリがあり、ユーザーが新しいリポジトリを追加できないようにすることはできますか?または、aptでは.debファイルからパッケージをインストールできますか?長期的には吟味されたレポはおそらくより多くの作業になると思います。これは概念的な質問です:)
naught101

1
apt-secure(8)「apt-getは現在、署名されていないアーカイブについてのみ警告します。将来のリリースでは、パッケージをダウンロードする前にすべてのソースの検証を強制する可能性があります」巧妙な攻撃の方法によっては、リポジトリソースへの接続を乗っ取り、信頼できないパッケージを挿入する可能性があります。ただし、詳細についてはそのマニュアルページを参照してください。スレッドモデルに対して十分に安全なソリューションがある場合があります。
-camh


回答:


21

許可されたコマンドをsudoで指定できます。無制限のアクセスを許可する必要はありません。例えば

username ALL = NOPASSWD : /usr/bin/apt-get , /usr/bin/aptitude

これは、ユーザ名が実行できるようになるsudo apt-getsudo aptitude任意のパスワードなしではなく、他のコマンドを許可しませんでした。

PackagekitPolicyKitを組み合わせて使用して、sudoよりも細かく制御することもできます。

ユーザーにパッケージのインストール/削除を許可することは危険です。定義されたアーカイブから任意のソフトウェアをインストールすると、攻撃者が古いソフトウェアや悪用可能なソフトウェアをインストールしてルートアクセス権を取得する可能性があります。私の意見の主な質問は、従業員をどれだけ信頼していますか?

もちろん、管理チームはパペット、シェフなどの構成管理システムの使用を開始したり、システムを管理するためにスペースウォークを調べたりすることもできます。これにより、中央システムからシステムを構成および管理できます。


私は質問から外しましたが、これを許可することで暗示されるセキュリティの低下について何かコメントはありますか?つまり、パッケージリポジトリを変更することはできないため、おそらく完全なsudoアクセスを取得することはできませんが、aptitudeを使用して任意のファイルに書き込むことができます(オプション>設定>「アクションにログインするファイル」)。重大な損傷を引き起こします。PolicyKitについてはあまり確信がありません
...-naught101

1
@ naught101 OKセキュリティーに関するコメントを追加しました。JFTRは、rootアクセスを提供することはありませんにPolicyKitとして、それは、sudoを使用してより少ない問題となる
ウルリッヒDangel

dpkgまたはrpmからシェルを実行する方法があります。たとえば、設定ファイルの変更が衝突すると、dpkgはプロンプトを表示します。オプションの1つは、状況を調べるシェルを起動することです。これは、sudoを介して実行される場合、rootとしてシェルを開始します。同様に、ツールからエディターを実行できる場合、ほとんどのエディターでは、その中から任意のシェルコマンドを実行できます(たとえば、viの!command)。
デビッドガードナー

@ naught101私はこのブログで説明するようSUIDシェルが含まれているRPMを経由して、権限昇格をテストします:nosedookie.blogspot.com/2011/07/... sudoerアカウントが侵害された場所シェル注入シナリオでは、しかし、一つは緩和することができNOPASSWDとは対照的に、パスワードの入力要求することにより、sudoを介した特権の昇格。
マット

7

aptdcon

マニュアルページから:

aptdcon:aptdaemonを使用して、ソフトウェアのインストールまたは削除などのパッケージ管理タスクを実行できます。このプログラムを実行するためにrootになる必要はありません。


1
aptdconを実行するのにroot / sudo特権は必要ありませんが、特権のないユーザーの認証ダイアログをすぐに起動します-Ubuntuでテストしました。あなたが特権/許可ユーザーでない場合、これはパッケージを追加/削除しません。
セージ

1
操作で動作しませんERROR: You are not allowed to perform this action. ('system-bus-name', {'name': ':1.716'}): org.debian.apt.install-or-remove-packages
-JacopKane


1

私もそのようなものを探しましたが、何も表示されなかったので、この簡単なソリューション「softwarechannels」をコーディングしました。

https://github.com/alfem/softwarechannels

一般的な(管理者なし)ユーザーが制限付きカタログからパッケージをインストールできるようにする非常にシンプルなシステムです。

単純なテキストファイルで「チャンネル」(パッケージのグループ)を定義し、ユーザーにソフトウェアチャンネルを起動する許可を与えるだけです。

Unixグループに一致するチャンネルのパッケージのみが表示されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.