使用vim 修改了/etc/sudoers 下的sudoers,导致无法鉴权。
这两天在嵌入式linux上搞网络编程,发现ubuntu设置的防火墙把端口屏蔽了,想手动打开,普通用户提权的时候不小心用vim修改了
1 | /etc/sudoers |
文件,导致内核解析的时候出错了:
这时候出现了一个悖论:
- 我想把sudoers修改回去,但是需要sudo权限
- sudoers解析错误,没办法sudo
造成了死锁…. 于是求助广大网友,万能网友一个骚操作成功化解,其原理至今未解:
使用ctrl+alt+F2 打开另外一个tty
在第一个tty执行
1
echo $$
获取tty的pid
在第二个tty执行
1
pkttyagent --process {pid}
这时第二个会卡住
返回第一个执行
1
pkexec visudo
然后,第二个终端也卡主,回到第一个终端,会提示输入当前用户密码
输入完密码,第一个终端卡主了,回到第二个终端,会发现,出现了sudoers的内容,编辑出错的地方,保存即可。
完成任务,修改完成,发现就可以继续使用sudo命令了,over
循环登录
在嵌入式linux系统里面又遇到下面这种情况:输入密码进入ubuntu后不一会闪退,需要重新输入密码,然后陷入循环…
试了很久,猜想系统扫描某些配置文件需要sudo权限,而普通用户无权限:
- 使用ctrl + alt + F1进入命令行界面
- 进入/etc/passwd 文件修改用户组为0:0,提升到root权限
- 重新登录神奇的好了,但是登录需要选择用户了(以前直接默认普通用户登录,现在可以直接root登录)