系统是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

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