Root以外のユーザーがパスワードを入力しなくてもUbuntuリポジトリからのものをインストールできるようにSoftware Centerを設定するにはどうすればよいですか?
私はセキュリティへの影響を十分に認識しており、リスクを冒しても構わないと思っています。 Fedora 12にはこのようなものが同梱されていました。 (PolicyKit設定を変更することにより、私は信じています)
PolicyKit許可を変更して、ユーザーがSoftware Centerが使用するaptdaemonバックエンドにアクセスできるようにすることができます。
dpkg --listfiles aptdaemon
は、/usr/share/polkit-1/actions/org.debian.apt.policy
がaptdaemonバックエンドで可能なアクションを指定するファイルであることを示しています。
そのファイルを見ると、< action id="">
タグは可能なアクションを指定します。おそらくorg.debian.apt.install-packages
でユーザーがアーカイブから新しいパッケージをインストールできるようにし、org.debian.apt.update-cache
でユーザーがパッケージリストを更新できるようにする必要があります。
PolicyKitアクションにローカルパーミッションを設定する方法を文書化したman pklocalauthority
を参照してください。以下を/etc/polkit-1/localauthority/50-local.d/10-allow-users-to-install.pkla
に入れると、ローカルマシンにログインしているすべてのユーザーが(adminグループにない場合でも)自分のパスワードを入力した後にパッケージをインストールし、パスワードを入力せずにパッケージキャッシュを更新できます。
[Untrusted Install]
Action=org.debian.apt.install-or-remove-packages
ResultyAny=no
ResultInactive=no
ResultActive=auth_self
[Untrusted Update]
Action=org.debian.apt.update-cache
ResultAny=no
ResultInactive=no
ResultActive=yes
現在、GUIを介してこれを行うことは不可能だと思いますが、少し気味が悪いとはいえ、次のように動作するはずです。 YMMV。
/ etc/sudoersに次の行を追加します(Sudo visudo
を使用してファイルを編集します)。
%packageinstallers ALL = NOPASSWD: /usr/bin/software-center /usr/bin/apt-get
次に、特定のユーザーを作成してpackageinstallers
グループに追加するだけです。
$ Sudo addgroup packageinstallers
$ Sudo adduser jdoe packageinstallers
jdoe
で次のことができるようになりました。
$ Sudo apt-get install <some-package>
また、ソフトウェアセンターのデスクトップメニュー項目を編集して、software-center
を呼び出してコマンドの前にgksudo
を追加することができます。
PolicyKit を使用すると、Sudoを使用せずにこれを行うことができますが、現時点では理解できません。
パッケージのインストールを許可または拒否するための一般的なアクセス許可のみが必要な場合は、PolicyKitに進みます。
残念ながら、PolicyKitはインストールするパッケージを細かく制御できません。制限されたアプリケーションセットのみをインストールする権限をユーザーに付与する場合は、Sudo
を使用して、softwarechannelsなどをインストールする必要があります...
私もそのようなものを探しましたが、何も見つからなかったので、この簡単なソリューション「softwarechannels」をコーディングしました GitHubで入手可能
一般的な(非管理者)ユーザーが制限付きカタログからパッケージをインストールできるようにする非常にシンプルなシステムです。
単純なテキストファイルで「チャンネル」(パッケージのグループ)を定義し、ユーザーにソフトウェアチャンネルを起動する許可を与えるだけです。
UNIXグループに一致するチャンネル内のパッケージのみが表示されます。
RAOFの答え はUbuntuにのみ適用されます。 KubuntuはQAptWorkerをバックエンドとして使用します(NattyおよびOneiricで確認)。非ルートインストールを許可するには、次を含む/etc/polkit-1/localauthority/50-local.d/10-allow-non-root-install-packages.pkla
を作成します。
[Update Software Sources]
Action=org.kubuntu.qaptworker.updateCache
ResultAny=no
ResultInactive=no
ResultActive=yes
[Install Software]
Action=org.kubuntu.qaptworker.commitChanges
ResultAny=no
ResultInactive=no
ResultActive=auth_self
Sudoアクセスを直接許可せずに、一部の非管理者ユーザーにソフトウェアのインストールを許可したかった。これは、両方の構成グループに次の行を挿入することで達成されました。
Identity=unix-user:some-non-admin-user
許可が必要なグループがある場合は、unix-group
の代わりにunix-user
を使用します。