WSL Ubuntu中丢失sudo权限的恢复求助
别慌!这种情况在WSL Ubuntu里其实超容易解决,毕竟WSL和Windows的互通性给了我们很多快捷方式,不用在Ubuntu里死磕sudo权限~
给你一套简单的恢复步骤,亲测有效:
首先关闭正在运行的Ubuntu实例:打开Windows的PowerShell或者命令提示符(CMD),输入命令
wsl --shutdown这一步是为了确保Ubuntu完全停止,避免后续操作时文件被锁定。
直接以root身份进入Ubuntu:在刚才的PowerShell/CMD里输入
wsl -u root如果你有多个WSL发行版,先输入
wsl -l -v查看你的Ubuntu 22.04的发行版名称,再用wsl -d <你的发行版名称> -u root(比如wsl -d Ubuntu-22.04 -u root)。执行完这个命令,你就直接拥有了Ubuntu的最高root权限,完全不需要普通用户的sudo验证。修复sudoers文件:现在在root shell里,一定要用
visudo命令编辑sudoers(它会自动检查语法,避免你再踩坑),输入visudo找到你之前注释掉的那行类似
%sudo ALL=(ALL:ALL) ALL的内容,把行首的#去掉,恢复这行的生效状态。保存退出并验证:如果用的是nano编辑器(visudo默认常用的),按
Ctrl+O保存,按回车确认文件名,再按Ctrl+X退出。然后输入exit退出root shell,重新打开Ubuntu终端,试试sudo ls,权限应该就恢复正常了!
最后再提醒一句:以后编辑/etc/sudoers文件,永远用visudo,别直接用vim/nano打开原文件——要是语法写错了,很容易又陷入现在这种尴尬境地,visudo会在保存前帮你检查语法错误,绝对是编辑sudoers的安全首选。
备注:内容来源于stack exchange,提问作者Ahsan Hayat




