对文件权限误操作导致的sudo报错Sudo doesn‘t work: “/etc/sudoers is owned by uid 1000, should be 0”的问题

     系统是Ubuntu20.04,使用VsCode在局域网ssh登陆主机。

为了给ssh登陆主机的vscode提供写入权限,试图用这个命令给vscode整个etc文件夹的读取权限

sudo chown -R $USER /etc

然后sudo就没有办法使用了

只有一个用户,没有超级管理员,没有sudo没有办法修改权限的配置文件。

试图将权限改回全部用户的时候因为没有sudo所以不能继续。。。进入了死循环

chown -R root /etc

但是参考这个操作,可以代替当前用户直接的sudo命令

https://iqcode.com/code/shell/sudo-etcsudoers-is-owned-by-uid-1000-should-be-0

具体操作是新建两个远程连接的终端 姑且叫终端1和终端2:

在终端1中输入:

echo $$

记下这个进程号

然后在终端2里面:

pkttyagent --process <上一步看到的号码>

运行之后会卡住,这是正常情况

回到终端1,用pkexec代替sudo重新输入要使用的命令:

pkexec chown -R root /etc

这时候,终端2会提示你可以输入密码了

输入密码,回到终端1,事实上这个时候终端1的命令已经以root权限成功运行了。

sudo又可以使用了

sudo失效之所以要用这么麻烦的手段往往是因为没有设置超级用户,建议在这之后赶紧完成超级用户的初始化

sudo passwd root

这样在遇到这类问题时就可以进入超级用户进行处理了

猜你喜欢

转载自blog.csdn.net/qq_63533710/article/details/128664388