用户不在sudoers文件中解决方法以及sudoer文件修改错误后的恢复方法
2015-11-18 15:04
1276 查看
在使用Linux系统过程中,通常情况下,我们都会使用普通用户进行日常操作,而root用户只有在权限分配及系统设置时才会使用,而root用户的密码也不可能公开。普通用户执行到系统程序时,需要临时提升权限,sudo就是我们常用的命令,仅需要输入当前用户密码,便可以完成权限的临时提升。在使用sudo命令的过程中,我们经常会遇到当前用户不在sudoers文件中的提示信息,如果解决该问题呢?通过下面几个步骤,可以很简单的解决此问题。
1、切换到root用户权限
Last login: Tue Sep 24 20:50:51 2013 from 192.168.30.171
[user@Compile ~]$ su root
密码:
[root@Compile user]#
(如果用的是Ubuntu,则为 "sudo su")
2、查看/etc/sudoers文件权限,,如果只读权限,修改为可写权限
[root@Compile user]# ls -l /etc/sudoers
-r--r-----. 1 root root 4030 9月 25 00:57 /etc/sudoers
[root@Compile user]# chmod 777 /etc/sudoers
[root@Compile user]# ls -l /etc/sudoers
-rw
4000
xrwxrwx. 1 root root 4030 9月 25 00:57 /etc/sudoers
[root@Compile user]#
3、执行vi命令,编辑/etc/sudoers文件,添加要提升权限的用户;在文件中找到root ALL=(ALL) ALL,在该行下添加提升权限的用户信息,如:
root ALL=(ALL) ALL
user ALL=(ALL) ALL
说明:格式为(用户名 网络中的主机=(执行命令的目标用户) 执行的命令范围)
4、保存退出,并恢复/etc/sudoers的访问权限为440
[root@Compile user]# chmod 440 /etc/sudoers
[root@Compile user]# ls -l /etc/sudoers
-r--r-----. 1 root root 4030 9月 25 00:57 /etc/sudoers
[root@Compile user]#
5、切换到普通用户,测试用户权限提升功能
在上面的操作中如意出现这样的问题:如果把sudoer文件修改错误怎么办,我这边遇到的具体问题是在sudoers文件中添加user ALL=(ALL) ALL这条语句是,只添加了user,未添加ALL=(ALL)
ALL就保存退出了,并切换到了普通用户。此时,如果普通用户在此使用sudoer su命令时,系统提示sudoers文件中有语法错误,导致命令不能执行,所以不能进入root权限,而sudoers又只能在root权限下才能修改。
解决方法:
1,重启系统
2,启动时按shift,选择recovery mode,此时就是以root权限进入系统了,在这里对/etc/sudoers文件进行修改
3,/etc/sudoers默认是只读文件,所以先改变他的属性,输入chmod
440 /etc/sudoers
4,如果提示没有权限,或者不允许修改,就先输入
mount -o remount rw /
然后更改权限即可。
如果内容有错误,可以vi /etc/sudoers 进入修改。或者将以前添加的错误部分删除再保存。
1、切换到root用户权限
Last login: Tue Sep 24 20:50:51 2013 from 192.168.30.171
[user@Compile ~]$ su root
密码:
[root@Compile user]#
(如果用的是Ubuntu,则为 "sudo su")
2、查看/etc/sudoers文件权限,,如果只读权限,修改为可写权限
[root@Compile user]# ls -l /etc/sudoers
-r--r-----. 1 root root 4030 9月 25 00:57 /etc/sudoers
[root@Compile user]# chmod 777 /etc/sudoers
[root@Compile user]# ls -l /etc/sudoers
-rw
4000
xrwxrwx. 1 root root 4030 9月 25 00:57 /etc/sudoers
[root@Compile user]#
3、执行vi命令,编辑/etc/sudoers文件,添加要提升权限的用户;在文件中找到root ALL=(ALL) ALL,在该行下添加提升权限的用户信息,如:
root ALL=(ALL) ALL
user ALL=(ALL) ALL
说明:格式为(用户名 网络中的主机=(执行命令的目标用户) 执行的命令范围)
4、保存退出,并恢复/etc/sudoers的访问权限为440
[root@Compile user]# chmod 440 /etc/sudoers
[root@Compile user]# ls -l /etc/sudoers
-r--r-----. 1 root root 4030 9月 25 00:57 /etc/sudoers
[root@Compile user]#
5、切换到普通用户,测试用户权限提升功能
在上面的操作中如意出现这样的问题:如果把sudoer文件修改错误怎么办,我这边遇到的具体问题是在sudoers文件中添加user ALL=(ALL) ALL这条语句是,只添加了user,未添加ALL=(ALL)
ALL就保存退出了,并切换到了普通用户。此时,如果普通用户在此使用sudoer su命令时,系统提示sudoers文件中有语法错误,导致命令不能执行,所以不能进入root权限,而sudoers又只能在root权限下才能修改。
解决方法:
1,重启系统
2,启动时按shift,选择recovery mode,此时就是以root权限进入系统了,在这里对/etc/sudoers文件进行修改
3,/etc/sudoers默认是只读文件,所以先改变他的属性,输入chmod
440 /etc/sudoers
4,如果提示没有权限,或者不允许修改,就先输入
mount -o remount rw /
然后更改权限即可。
如果内容有错误,可以vi /etc/sudoers 进入修改。或者将以前添加的错误部分删除再保存。
相关文章推荐
- Linux socket 初步
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断
- 谁是桌面王者?Win PK Linux三大镇山之宝
- vivi下重新调整分区