为什么 sudoers 没有通过 UID 定义?

为什么 sudoers 没有通过 UID 定义?

在 Linux 中,登录信息与 UID 绑定。但是,当我打开 sudoers 文件时,sudoers 由用户名而不是 UID 定义。

为什么使用用户名而不是 UID?
sudoers 文件在usermod -l运行时会自动更改吗?

片段:

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

答案1

遵循一些手册[12] 我可以给你以下答案:

  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
    
  2. 当您简单地这样做时,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]。

参考

相关内容