我有一个正常工作的 Debian 服务器。所有已被授予权限的现有用户都可以毫无问题地sudo使用。sudo但是,用户名中带有点的新用户在尝试执行以下操作时会看到“用户名不在 sudoers 文件中。将报告此事件” sudo。
我没有看到该用户遗漏了任何步骤。这是我的步骤:
创建一个用户名中带有点的特权用户。我使用这个小脚本来添加开发人员用户帐户。
#!/bin/bash
uu=$1
useradd -m -G sudo,webdev -s /bin/bash $uu
passwd $uu
cd /home/$uu/
mkdir .ssh/
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
chmod 700 .ssh/
chown -R $uu:$uu .ssh/
ls -la .ssh/
cat $uu.pub > /home/$uu/.ssh/authorized_keys
echo "finished"
Run Code Online (Sandbox Code Playgroud)
检查用户是否在 sudo 组中:
getent group sudo
Run Code Online (Sandbox Code Playgroud)
这已经存在于/etc/sudoers
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
Run Code Online (Sandbox Code Playgroud)
接下来我创建了 /etc/sudoers.d/user.name (并将权限设置为 640):
nano /etc/sudoers.d/user.name
user.name ALL=(ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
要进行测试,请使用用户帐户登录并尝试sudo。我收到上述错误。
我能够解决此问题的一种方法是将此用户添加到具有 sudo 权限的不同组中。
要么是我遗漏了某些内容,要么是用户名中的点导致了其他用户名未遇到的问题。
muru在评论中给出了解决方案。
\n\n\n\nsudo 将读取 /etc/sudoers.d 中的每个文件,跳过以 \xe2\x80\x98~\xe2\x80\x99 结尾或包含 \xe2\x80\x98.\xe2\x80\x99 字符的文件名。 ..
\n
正如 roaima 在另一条评论中指出的那样:
\n\n\n用户名中的点不会导致问题。这是因为您选择将 sudo 配置放在名称包含点的文件中。
\n
这正是问题所在。我验证过的解决方案就是:
\nsudo mv /etc/sudoers.d/user.name /etc/sudoers.d/username\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
4963 次 |
| 最近记录: |