系统是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失效之所以要用这么麻烦的手段往往是因为没有设置超级用户,建议在这之后赶紧完成超级用户的初始化文章来源:https://www.toymoban.com/news/detail-521335.html
sudo passwd root
这样在遇到这类问题时就可以进入超级用户进行处理了文章来源地址https://www.toymoban.com/news/detail-521335.html
到了这里,关于对文件权限误操作导致的sudo报错Sudo doesn‘t work: “/etc/sudoers is owned by uid 1000, should be 0”的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!