die*_*eki 50 software-center policykit software-installation
如何设置软件中心以允许非 root 用户从 Ubuntu 存储库安装内容而无需输入密码?
我完全了解安全隐患,我愿意承担风险。Fedora 12 附带了这样的东西。(我相信通过修改 PolicyKit 配置)
RAO*_*AOF 37
您可以修改 PolicyKit 权限以允许用户访问软件中心使用的 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
Run Code Online (Sandbox Code Playgroud)
lfa*_*one 11
我认为目前无法通过 GUI 执行此操作,但以下应该可以工作,尽管有点笨拙。天啊。
将以下行添加到 /etc/sudoers(用于sudo visudo编辑文件):
%packageinstallers ALL = NOPASSWD: /usr/bin/software-center /usr/bin/apt-get
Run Code Online (Sandbox Code Playgroud)
然后您只需要创建特定用户并将其添加到packageinstallers组中:
$ sudo addgroup packageinstallers
$ sudo adduser jdoe packageinstallers
Run Code Online (Sandbox Code Playgroud)
现在jdoe可以执行以下操作:
$ sudo apt-get install <some-package>
Run Code Online (Sandbox Code Playgroud)
并且您可以编辑软件中心的桌面菜单项,以便它调用在software-center命令前加上gksudo.
PolicyKit可能允许您在没有 sudo 的情况下这样做,但这超出了我的理解。
RAOF 的回答仅适用于 Ubuntu。Kubuntu 使用 QAptWorker 作为后端(观察 Natty 和 Oneiric)。要允许非 root 安装,请创建/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
Run Code Online (Sandbox Code Playgroud)
我想允许一些非管理员用户安装软件而不直接授予 sudo 访问权限。这是通过在两个配置组中插入下一行来完成的:
Identity=unix-user:some-non-admin-user
Run Code Online (Sandbox Code Playgroud)
如果存在必须授予权限的组,请使用unix-group代替unix-user。
小智 5
如果您只需要允许/禁止安装包的通用权限,请选择 PolicyKit。
不幸的是 PolicyKit 不能很好地控制要安装的包。如果您想授予您的用户仅安装一组受限应用程序的权限,您应该使用sudo并安装诸如 softwarechannels 之类的东西...
我也寻找过类似的东西,但由于我没有找到任何东西,我编写了这个简单的解决方案“softwarechannels”,可在 GitHub 上找到
这是一个非常简单的系统,允许普通(非管理员)用户从受限目录安装软件包。
只需在一个简单的文本文件中定义“频道”(包组),并授予您的用户启动软件频道的权限。
他们只会看到与他们的 unix 组匹配的频道中的包。
| 归档时间: |
|
| 查看次数: |
14085 次 |
| 最近记录: |