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 / 问题 / 1114351
Accepted
Viktor
Viktor
Asked: 2019-02-01 02:05:31 +0800 CST2019-02-01 02:05:31 +0800 CST 2019-02-01 02:05:31 +0800 CST

为什么系统一直要求输入 sudo 组的第一个成员的密码而不是拒绝执行命令

  • 772

我们有操作系统 ubuntu 18.04。有 2 个用户:user1、user2。user1 是管理帐户,并且是 sudo 组的成员: uid=1010(user1) gid=1010(user1) groups=1010(user1),27(sudo),110(lxd)。user2 是普通用户uid=1000(user2) gid=1000(user2) groups=1000(user2)。现在,在 /etc/sudoers 文件中,我有一个 sudo 组的默认记录:

# Allow members of group sudo to execute any command 
%sudo   ALL=(ALL:ALL) ALL

以及允许使用 user2 的管理(root)权限执行的特殊命令:

Cmnd_Alias CMD_RELOAD_PHP_FPM = /bin/systemctl reload php7.0-fpm, /bin/systemctl reload php7.2-fpm
user2 ALL=(root:root) NOPASSWD: CMD_RELOAD_PHP_FPM

在这一步一切都很好 user2 可以在不输入密码的情况下执行 Cmnd_Alias 中指定的所有内容,因此可以按预期工作。

但是,当 user2 尝试执行他不允许执行的操作时,他会提示输入、注意、user1密码。不是root,不是他自己的user2,而是user1密码,而不是默默地或信息性地否认这种行为:

user2@someserver:~$ /bin/systemctl restart <someservice>
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'someservice.service'.
Authenticating as: user1
Password:

user1是 sudo 组的唯一成员。

grep 'sudo' /etc/group
sudo:x:27:user1
grep 'sudo' /etc/gshadow
sudo:*::user1

如果user1从sudo组中删除并user2尝试执行相同的命令,则要求他输入root密码。

我怎样才能改变这种行为,所以user2尝试会被拒绝而不是要求他输入密码?

permissions sudo users pam
  • 1 1 个回答
  • 17506 Views

1 个回答

  • Voted
  1. Best Answer
    Jevgenij
    2019-02-14T14:12:21+08:002019-02-14T14:12:21+08:00

    我没有足够的知识polkit,但这似乎是导致这种行为的原因。

    负责的线路是:

    AdminIdentities=unix-group:sudo;unix-group:admin
    

    在/etc/polkit-1/localauthority.conf.d/51-ubuntu-admin.conf文件里面

    注释该AdminIdentities=...行并重新启动 polkit 守护程序会返回默认行为,其中root服务重新启动需要密码。不确定它是否安全。可能一些社区成员可以更好地解释。

    systemd此外,如果非特权用户尝试使用 systemd 服务执行某些操作,我似乎找到了描述默认操作的地方。
    它在文件里面:/usr/share/polkit-1/actions/org.freedesktop.systemd1.policy

    如果我设置这样的值:

    <action id="org.freedesktop.systemd1.manage-units">
            <description gettext-domain="systemd">Manage system services or other units</description>
            <message gettext-domain="systemd">Authentication is required to manage system services or other units.</message>
            <defaults>
                    <allow_any>no</allow_any>
                    <allow_inactive>no</allow_inactive>
                    <allow_active>no</allow_active>
            </defaults>
    </action>
    

    我开始收到Access denied有关尝试以非特权用户身份重新启动服务的消息。

    • 2

相关问题

  • 无法更新雷鸟

  • 为什么我需要 root 权限才能在命令行中卸载驱动器,而不是在 Nautilus 中?如何改变它?

  • Ubuntu 在什么许可证下?可以合法修改和分发吗?

  • 文件权限如何工作?文件权限用户和组

  • 如何防止自己在多用户设置中自动注销?

Sidebar

Stats

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

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

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

    • 24 个回答
  • Marko Smith

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

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +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
    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