root以外のユーザーがパスワードを入力せずにUbuntuリポジトリからのものをインストールできるようにSoftware Centerを設定するにはどうすればよいですか?
私はセキュリティへの影響を十分に認識しており、リスクを冒しても構わないと思っています。Fedora 12にはこのようなものが同梱されていました。(PolicyKit設定を変更することにより、私は信じています)
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
できるようにし、ユーザーがパッケージリストを更新できるようにする必要があります。
man pklocalauthority
PolicyKitアクションでローカルアクセス許可を設定する方法については、どのドキュメントをご覧ください。以下を/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
/usr/share/polkit-1/actions/org.kubuntu.qaptworker.policy
Identity=*
これを機能させるには、askubuntu.com / a / 123260から改作して追加する必要がありました。また、たとえば/var/log/auth.log
(または他のログファイル)でより多くのポリシーキットログ出力を取得する方法はありますか?authentication fails
メッセージだけが表示されますが、失敗した理由はありません
現時点では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のデスクトップメニュー項目を編集してsoftware-center
、コマンドの先頭にを追加して呼び出すようにできますgksudo
。
PolicyKitを使用すると、sudoを使用せずにこれを行うことができますが、現時点では理解できません。
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
。
sudo -i
アクセスすることさえできなかった後でも/etc/polkit-1/localauthority
:「ディレクトリ/ etc / polkit-1 / localauthorityを処理しようとしない」
パッケージのインストールを許可/禁止するための一般的な許可のみが必要な場合は、PolicyKitに進みます。
残念ながら、PolicyKitはインストールするパッケージを細かく制御できません。制限されたアプリケーションセットのみをインストールする権限をユーザーに付与する場合は、sudo
softwarechannelsなどを使用してインストールする必要があります。
私もそのようなものを探しましたが、何も見つからなかったので、GitHubで入手できるこの簡単なソリューション「softwarechannels」をコーディングしました
一般的な(非管理者)ユーザーが制限付きカタログからパッケージをインストールできるようにする非常にシンプルなシステムです。
単純なテキストファイルで「チャンネル」(パッケージのグループ)を定義し、ユーザーにソフトウェアチャンネルを起動する許可を与えるだけです。
UNIXグループに一致するチャンネルのパッケージのみが表示されます。