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

在Ubuntu20.04上,当VsCode通过SSH登录主机并尝试给予其对/etc目录的写入权限时,误用sudochown导致sudo功能失效。文章详细描述了一个无需sudo的解决方案,通过pkttyagent和pkexec命令以root权限恢复权限设置。同时,建议设置超级用户以避免类似问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值