使用 visudo 进行更改不起作用

使用 visudo 进行更改不起作用

我发出 visudo 命令,将此规则添加到文件的最末尾,保存文件并退出。

newuser    ALL=/usr/sbin/useradd

但是 newuser 仍然可以运行以下命令:

sudo passwd username

并且添加到 sudoers 文件的规则似乎不起作用。为什么?

我修改文件后已注销/登录。

目标是让新用户能够创建新用户,但不能为该用户设置密码。

id newuser
uid=1003(newuser) gid=1003(newuser) groups=1003(newuser),27(sudo)


visudo


#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:    /usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

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

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

newuser     ALL=/usr/sbin/useradd

答案1

newuser的配置中有两行可能会影响它。它属于sudo组,并且是用户newuser。由于您的用户在sudo组中,因此它可以在提供密码后运行任何命令。

您需要退出newusersudo组,或调整您的配置以适应这种情况。在此过程中,请注意不要丢失sudo主帐户!

newuser不再属于允许其访问所有命令的组时,它将受到限制并且只允许运行useradd,正如您配置的那样,并且不需要弄乱或添加任何passwd条目,因为它将无权访问该命令。


您的问题措辞不清楚。 是否newuser能够运行任何和所有sudo命令? 它们可以运行还是不能运行sudo passwd username? 您的目标是什么?

您必须向我们提供/etc/sudoers文件以及您newuser所属的组列表。它可能newuser在该sudo组中,或者被授予访问权限的其他某个组中。

如果您无法运行sudo passwd,则需要添加一条规则以允许您的用户运行该命令,因为/usr/sbin/useradd/usr/bin/passwd是两个不同的二进制文件。

您是否考虑过所做之事的后果?如果您允许newusersudo passwd root为什么不直接授予他们 root 访问权限(除非您确实将其锁定为username)?

相关内容