修复一个破碎的sudoers文件

可能重复:
Ubuntu:borked我的sudoers文件,我该如何解决?

问题描述:

我打破了我的/ etc / sudoers文件,在其中input错误。 现在我不能再使用任何sudo命令,因为下面的错误被抛出。 因此,我无法修复我的sudoers文件,并有效地卡住。

$ sudo nano /etc/sudoers >>> /etc/sudoers: syntax error near line 39 <<< sudo: parse error in /etc/sudoers near line 39 sudo: no valid sudoers sources found, quitting 

我发现几个解决scheme,说我应该启动到恢复模式(如下面的),我显然希望避免。
Ubuntu:borked我的sudoers文件,我该如何解决?

问题:

– 有没有其他的方法来解决它,而无需重新启动Ubuntu?
– 如果在修改sudoers文件(每个人都可以input错字)的时候,把自己locking在sudo上是非常容易的,为什么sudoers config不是直接从内存中读取文件? 会有一个命令(例如sudo-load)来确保在将configuration加载到内存之前语法正确,从而避免这种问题。

解决scheme:
似乎有两种恢复方法:
如果你有root密码,你可以简单地发一个'su'然后编辑这个文件
如果您没有root密码,则需要重启到单用户模式

不,您必须重新启动,或者如果您允许rootlogin,请以root身份login。

这是你修改sudoers文件时总是使用visudo的原因。 visudo将在保存之前检查sudo文件的语法,保护你免受这个特定的问题(但不是写一个sudoers文件,不允许你运行sudo!)

请注意,sudoers通常在Ubuntu上设置为不可写:

 -r--r----- 1 root root 556 2010-04-18 15:05 sudoers 

所以你必须改变sudoers的访问权限才能用nano修改它。 有一个很好的理由是这样设置文件。 如果遇到不能被root用户写入的文件,则在更改访问权限并开始编辑之前,应该考虑一次,两次和三次。