sudo visduo
我不小心在文件中命令了 root 管理员和 sudo 。
现在,当前用户无法将其回滚,因为我无法再访问它。
文件无法通过命令打开sudo visudo
它说:用户不在 sudoers 文件中。
当我通过它访问它时,nano /etc/sudoers
当我尝试再次保存文件时却说权限被拒绝。
$sudo cat /etc/sudoers
...
# User privilege Information
#root ALL=(ALL) ALL
#...
#%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d
#Members of the admin group may gain root privileges
#%admin ALL=(ALL) ALL
#
答案1
由于您可以使用“root”用户登录,因此您只需执行以下操作:
chmod 644 /etc/sudoers
这将允许“root”用户修改/etc/sudoers文件。此后,您只需:
nano /etc/sudoers
并保存您的更改。
答案2
使用 shellshock 向/etc/passwd
(或 sudoers(但我不知道删除注释有多难。我以为 echo 只能添加)) 发送回显以创建标识符为 0 的用户。无限制访问 root 或不是。如何创建如此精心设计的命令超出了我的能力范围。
或者,完全可以从实时环境 chroot 进入,然后从那里编辑 sudoers。不确定,因为你说过,即使是 root 也无法进入。我不知道这会有多灾难性,env x='() { :;}; rm /etc/passwd' bash -c "You've done it now"
我也不知道你的发行版是否提供了方法cp /etc/skel/sudoers /etc/sudoers
非常类似于这. 解决方案可能就在那里。