在 Linux 中,登录信息与 UID 绑定。但是,当我打开 sudoers 文件时,sudoers 由用户名而不是 UID 定义。
为什么使用用户名而不是 UID?
sudoers 文件在usermod -l
运行时会自动更改吗?
片段:
# User privilege specification
root ALL=(ALL:ALL) ALL
答案1
可以通过 UID 来指示用户。
来自sudoers Ubuntu 维基我们可以读到:
您可以通过在注释前加上 # 来插入注释,但当注释后跟数字时,它也用于在文件的某些部分指定 uid。
后来在Runas 别名部分报道一个例子:
# UID 0 is normally used for root # Note the hash (#) on the following line indicates a uid, not a comment. Runas_Alias ROOT = #0
当您简单地这样做时,
usermod -l
您不应该在 sudoers 中传播更改。
确实从usermod 的手册页,比BSD 一个,我们可以读到-l, --login 新登录
用户的名称将从 LOGIN 更改为 NEW_LOGIN。其他都没什么改变。
特别是,用户的主目录名称可能应该手动更改以反映新的登录名。如果你只指定参数,似乎仍然需要手动处理 sudoers 中的修改
-l
。可能你必须删除旧用户名和将用户添加到 sudo 组和sudo usermod -a -G sudo hduser
确实如此此用户在 2008 年使用 Debian Sid 系统:
我以前使用 XXX 作为用户名登录我的 sid 笔记本电脑,XXX 在 sudoers 文件中。今天我使用
sudo usermod -l YYY XXX
我没做其他事。
现在我可以使用 YYY 登录,但无法使用 root 密码以 su 身份登录。此外,“YYY”不在 sudoers 文件中,所以现在我无法编辑 /etc/sudoers 以包含 YYY。
最后为什么,也许你应该只从托德·米勒1991 年,谁对 sudo 进行了最后一次(获胜的)分叉,或者如果它是在 1980 年出现的,那么可能是 Bob Coggeshall 或 Cliff Spencer [7]。
参考
- 这Ubuntu 维基百科关于 sudoers。
- 这Runas 别名部分。
- 手册页用户模式。
- usermod 的手册页,BSD 一个。
- 询问 Ubuntu回答关于如何将用户添加到 sudo 组。
- 那个人
usermod -l
。 - 一些历史注释关于 sudo。
- 托德·米勒的主页。