AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 3
Accepted
dieki
dieki
Asked: 2010-07-29 11:21:50 +0800 CST2010-07-29 11:21:50 +0800 CST 2010-07-29 11:21:50 +0800 CST

如何设置软件中心为非 root 用户安装软件?

  • 772

如何设置软件中心以允许非 root 用户从 Ubuntu 存储库安装东西而无需输入密码?

我完全了解安全隐患,我愿意承担风险。Fedora 12 附带了这样的东西。(通过修改 PolicyKit 配置,我相信)

software-installation software-center policykit
  • 5 5 个回答
  • 14835 Views

5 个回答

  • Voted
  1. Best Answer
    RAOF
    2010-07-29T18:37:39+08:002010-07-29T18:37:39+08:00

    您可以修改 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将允许任何登录到本地计算机的用户在输入自己的密码后安装包(即使他们不在管理员组中),并在不输入任何密码的情况下更新包缓存。

    [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
    
    • 37
  2. lfaraone
    2010-07-29T11:45:23+08:002010-07-29T11:45:23+08:00

    我认为目前无法通过 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 的情况下这样做,但目前我无法理解。

    • 11
  3. Lekensteyn
    2011-11-14T05:48:58+08:002011-11-14T05:48:58+08:00

    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
    

    我想允许一些非管理员用户在不直接授予 sudo 访问权限的情况下安装软件。这是通过在两个配置组中插入下一行来完成的:

    Identity=unix-user:some-non-admin-user
    

    如果有必须授予权限的组,请使用unix-group代替unix-user.

    • 5
  4. Alfonso E.M.
    2013-02-21T02:44:02+08:002013-02-21T02:44:02+08:00

    如果您只需要允许/禁止安装包的通用权限,请选择 PolicyKit。

    不幸的是,PolicyKit 无法很好地控制要安装的包。如果您想让您的用户仅安装一组受限的应用程序,您应该使用sudo和安装类似软件频道的东西...

    我也在寻找类似的东西,但由于我没有找到任何东西,我编写了这个简单的解决方案“softwarechannels”,可在 GitHub 上找到

    这是一个非常简单的系统,允许普通(非管理员)用户从受限目录安装软件包。

    只需在一个简单的文本文件中定义“频道”(包组),并授予您的用户启动软件频道的权限。

    他们只会在与他们的 unix 组匹配的频道中看到包。

    • 5
  5. Alex
    2019-12-01T01:19:09+08:002019-12-01T01:19:09+08:00

    为了使它在我的 Ubuntu 18.04 中工作,我必须将 /etc/polkit-1/localauthority/50-local.d/10-allow-users-to-install.pkla 文件更改为:

    [Untrusted Install]
    #Action=org.debian.apt.install-or-remove-packages
    Action=org.freedesktop.packagekit.package-*
    ResultyAny=no
    ResultInactive=no
    ResultActive=auth_self
    Identity=*
    
    [Untrusted Update]
    Action=org.debian.apt.update-cache
    ResultAny=no
    ResultInactive=no
    ResultActive=yes
    Identity=*
    
    [Admin Install]
    #Action=org.debian.apt.install-or-remove-packages
    Action=org.freedesktop.packagekit.package-*
    ResultyAny=no
    ResultInactive=no
    ResultActive=yes
    Identity=unix-group:adm
    

    此外,根据最后一条规则,我允许 adm 组中的每个人都无需任何密码即可安装/删除。

    • 0

相关问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve