[实践OK]sudo: /etc/sudoers is mode 0640, should be 0440解决办法

jackxiang 2015-3-16 10:09 | |
背景:centos一兄弟把那个/etc/sudoer给权限变更了,于是否,出现sudo su -因为权限进入不了root,sudo su - sudo: /etc/sudoers is mode 0640, should be 0440 ,于是否,查了一下网络,有下面两种解决办法,特别是我自己有一个方法,那就是我有一个c文件是有root的权限,它能以root的权限让php去执行这个popen的类windows的cmd命令,于是在没有root密码的情况下也能修改这个文件,解决了问题。
ubuntu或者CentOS中,/etc/sudoer 的权限为 0440时才能正常使用,否则sudo命令就不能正常使用。出现类似:sudo: /etc/sudoers is mode 0640, should be 0440 的对话。
解决办法:
1、Ctrl+Alt+F1   进入文本模式。用超级用户登录,如root
2、输入:chmod 0440 /etc/sudoers  。Enter
3、exit 退出
4、Ctrl+Alt+F7 返回图形模式。
5、在试试sudo命令,可以用了

P:其实另开一个端口,su -进入root,然后chmod 0440 /etc/sudoers  
效果是一样的

example:
[BIngo@windows ~]$ sudo chmod u+w /etc/sudoers
口令:
[BIngo@windows ~]$ ls -l /etc/sudoers
-rw-r----- 1 root root 3210 11-16 02:40 /etc/sudoers
[BIngo@windows ~]$ sudo chmod u-w /etc/sudoers
sudo: /etc/sudoers is mode 0640, should be 0440
[BIngo@windows ~]$ ls -l /etc/sudoers
-rw-r----- 1 root root 3210 11-16 02:40 /etc/sudoers

另开端口
[root@windows ~]# chmod 0440 /etc/sudoers
[root@windows ~]# exit
[BIngo@windows ~]$ ls -l /etc/sudoers
-r--r----- 1 root root 3210 11-16 02:40 /etc/sudoers

方法二(不是每台机器都有我这样的二进制,我是为了显示svn的版本号才临时用php调这个c,再用php调shell下的svn命令获取项目代码位置里的svn的版本号):
-rwsrwxrwx 1 root root 11711 Oct  9 17:29 resetServerAndOptSVN //有root权限,它会调一个php文件,这个php的shell也有root权限,于是我只对php作了修改即可:
vi resetServerAndOptSVN.php


./resetServerAndOptSVN disvnver jack
于是,Ok了,这块主要是利用这个c编译的文件有root权限,让它去修改了权限,于是解决了问题~

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/7862/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]