以前一直使用Fedora系统,今天偶尔用了用Ubuntu Linux系统,感觉那个sudo有点很不适应啊。 我的经历还是有一点点曲折。首先我使用用户shiyanjun创建了/home/shirdrn目录,本来以为之后可以chown给shirdrn用户的;然后我才创建了一个用户shirdrn,默认指定shirdrn组,提示我/home/shirdrn目录不属于shirdrn,这是肯定的。当我su到shirdrn用户,并想使用sudo权限将/home/shirdrn目录chown过来的时候,结果提示我: shirdrn is not in the sudoers file 所以我就想把shirdrn用户加入到sudoers文件中,具体位置是/etc/sudoers,可以看到,该文件默认的权限是-r-r-----,只对于root组的root用户,也就是0440权限。默认root用户也不能对该文件执行w权限,必须通过root用户首先添加对该文件的w权限才能修改该文件。 结果,在网上搜到一篇文章,说是什么Alt+F1等等,最后su到用户shiyanjun,增加了/etc/sudoers文件的w权限: sudo chmod u+w /etc/sudoers 修改成功了,结果出现了可以使用用户shiyanjun修改/etc/sudoers文件,但是因为是read-only的,无法保存。再执行sudo命令,老是出现提示: sudo: /etc/sudoers is mode 0640, should be 0440 彻底要崩溃了,我感觉,此时如果不使用超级用户(以前在Fedora下root最管用了)是解决不了问题的,这时就想到如何启动Ubuntu下的root用户,网上搜索了一通,不得而知,最后终于找到了一种解决方式,文章出自http://www.craigmayhew.com/blog/2009/09/ubuntu-error-sudo-etcsudoers-is-mode-0640-should-be-0440/,非常感谢。下面简单叙述一下具体解决过程: 1、重新启动Ubuntu系统,启动的时候按住Esc键,可以看到引导选项; 2、可以看到引导选项列表中,有一项的末尾括号里是这样的(recovery mode),也就是恢复模式,选择这项,回车继续; 3、数据加载一会,进入到Recovery Menu页面,可以看到有如下选项: resume 选择root,也就是进入试用root用户进行系统恢复,在里面可以执行超级用户权限的操作。 回车后,可以看到熟悉的 root@TUZKI:~# 命令提示符了。 4、设置或者撤销/etc/sudoers文件的权限 此时,你可以执行: chmod u-w /etc/sudoers 撤销对/etc/sudoers文件的w权限。我是直接增加了root的w权限,直接将用户shirdrn添加到了/etc/sudoers文件中,在 root ALL=(ALL) ALL 这行下面增加了如下一行: shirdrn ALL=(ALL) ALL 这就使得用户shirdrn成了sudo组的用户了,可以执行超级权限了。 退出recovery mode,重新启动系统,进入后,可以使用shirdrn用户创建/home/shirdrn目录了: sudo mkdir /home/shirdrn 因为shirdrn已经是sudo组的用户了,执行cd ~再执行pwd可以看到shirdrn用户的/home/shirdrn目录了。 |
Ubuntu问题sudo: /etc/sudoers is mode 0640, should be 0440的解决方法