Linux

【Bash】「cannot lock /etc/passwd; try again later.」「ロックできません後で もう一度試してください」のエラーの解決方法!

こんにちは、あきぞらです。

Dockerを開発環境で利用することがよくあります。

あるとき、ログインシェルbashに変更する作業をしていたのですが、

usermodコマンドを実行した際にエラーに遭遇してしまいました。

途方に暮れてしまったのですがなんとか解決ができたので、

今回はその方法を紹介していきます!

usermodコマンド実行時にエラー

usermodコマンドを打ったときに、

以下のようなエラーで返されてしまいしました。

$ usermod -s /bin/bash akizora
usermod: Permission denied.
usermod: cannot lock /etc/passwd; try again later.

/etc/.pwd.lockを削除してみる

何かがロックしているのかと思い、

rootユーザで/etc/を検索してみます。

# find /etc/ | grep lock
/etc/.pwd.lock
/etc/init.d/hwclock.sh

この/etc/.pwd.lockがとても怪しい。

ということで削除してみます。

# rm -i /etc/.pwd.lock
rm: remove regular empty file '/etc/.pwd.lock'? y

これで直るかと思いきや、解決しませんでした。

root権限で実行

ここで重大なことに気が付きました。

最初のコマンドはrootでやるべきなのでは?と。

rootユーザで実行します。

# usermod -s /bin/bash akizora

またはsudoをつけてコマンドを実行します。

$ sudo usermod -s /bin/bash akizora

これでうまくいきました!

最初からroot権限で実行しておけばよかったものを…、失敗しました。

では、また!

-Linux

Copyright© あきぞらてっく , 2023 All Rights Reserved Powered by AFFINGER5.