这是我的unix课程中的一个基本练习。
指令如下:
- 1 号航站楼:根用户运行
visudo
- 终端 1:注释掉该行
%wheel ALL=(ALL) ALL
- 1 号航站楼:使用:w不要退出 visudo
- 终端 2:以普通用户身份登录
- 终端 2:执行
sudo ls
- 终端 2:你应该会收到类似这样的错误信息“用户名不在 sudoers 列表中”
注意:普通用户已经是wheel组的成员
问题是,我没有得到不在 sudoers 列表中错误,直到我退出 visudo1号航站楼。
更令人困惑的是,对于我的程序中的某些人来说,他们无需退出 visudo 即可收到错误1号航站楼。
是否有任何设置可以使我们的机器的这种行为有所不同?
答案1
该命令visudo
不会直接编辑/etc/sudoers
或 下的片段/etc/sudoers.d/
。
相反,它会临时复制该文件,打开默认编辑器来修改该临时文件。退出(不保存)时,visudo 将对新版本的配置文件运行语法检查。如果语法有效,它将被复制回原始位置。
整个验证过程是为了防止您破坏系统并使其无法管理。如果您真的很勇敢或不明智,您可以直接使用您最喜欢的编辑器编辑 sudoers 文件。如果您这样做,只要您保存,您的更改就会应用。如果您这样做,请不要犯任何错误,否则您可能会很倒霉。
至于你的应用程序发生了什么。我不知道,你确实没有提供足够的信息来让我猜测你的问题的那个方面。