在 sudoers 文件中使用当前用户环境变量

在 sudoers 文件中使用当前用户环境变量

我希望我的一些用户能够使用 sudo 命令更改密码,因为在他们登录时,他们是无密码的(ssh 密钥连接)。我的用户没有密码(这是想要的),他们sudo什么也不能做。尽管如此,我希望他们只能执行一个 sudo 命令:sudo passwd $USER,这样他们就可以选择密码。

这是我的 sudoers 文件中有趣的部分:

Defaults!/usr/bin/passwd    env_keep=SUDO_USER

%restrictedgroup ALL = NOPASSWD: /usr/bin/passwd $SUDO_USER

这不起作用。如何访问 sudoers 文件中当前的 SUDO_USER 环境变量?

编辑:我在我的上下文中还有另一个重要的限制:我无法为每个用户设置虚拟密码。这意味着他们确实无法在没有sudo.

答案1

你可以写一个脚本(比如/usr/local/bin/change-my-pass.sh):

#! /bin/sh    
passwd $SUDO_USER

并将其添加到sudoers,然后告诉您的用户(或给他们一条欢迎消息指示他们)使用该脚本。

相关内容