普段技術同人を執筆する際は、WSL2のDebian上にRe:Viewを突っ込んで執筆しています。
そんな中ちょっとスタイルファイルを追加したいなぁと思って、wgetをaptで引っ張ってこようとした際に、sudo apt install wgetを叩いたところ下記のようなエラーメッセージが出て動かなくなってしまいました。
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set.
特に何か大きく環境を弄ったわけでもない中で、sudoがいきなり使えなくなって困ったなぁ・・・という状況に陥ってしまいました。締め切り直前に。
何かのはずみにパーミッションが腐ったのかなぁと思いながら、解決策を調べていたところ下記のIssueにたどり着きました。
Last night I installed nodejs and did a sudo chown -R $(whoami) $(npm config get…
github.com
1 - on an elevated CMD change default user to root:
ubuntu1804.exe config --default-user root
2 - open bash (zsh in my case) and change ownership:
chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
3 - on an elevated CMD change default user back to my username
ubuntu1804.exe config --default-user [my_username]
このIssueの中にあった解決策試せばいけるんじゃない?と試したところ無事に動いてくれてホッと一息。
今回僕はDebianを利用していて、普段利用しているユーザアカウントは「syobon」でしたので、下記のように実行してみました。
PS C:\WINDOWS\system32>debian config --default-user root
PS C:\WINDOWS\system32>debian
------------------------------------------------------------
#これでdebianをrootユーザで開けられるようになります。
kongo# whoami
root
kongo# chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
------------------------------------------------------------
#これでパーミッションの修正が完了するので、確認してみます。
kongo# su syobon
syobon@kongo> whoami
syobon
syobon@kongo> sudo apt search wget
[sudo] password for syobon:
Sorting... Done
Full Text Search... Done
以下略
------------------------------------------------------------
#修正が完了した物の、default-userをrootに指定しているので、下記コマンドを
#PowerShellで実行してdefault-userを元に戻します。
PS C:\WINDOWS\system32>debian config --default-user syobon
目次
おわりに
技術書典11の新刊執筆が終わったので、ぼちぼちブログ更新を再開しています。
執筆カロリーが低めのTips記事を増やしつつ、たまに少し重たい記事を更新できればなぁと思います。