ロックファイルが原因で chsh を使用するときにエラーが発生し、シェルを fish シェルとして設定できません

ロックファイルが原因で chsh を使用するときにエラーが発生し、シェルを fish シェルとして設定できません

問題: CentOS 7 のユーザー「student」のデフォルト シェルを fish-shell に設定できません。.gz をダウンロードし、構成、make、make install して fish-shell をインストールしました。

output of which fish
/usr/local/bin/fish

標準の「学生」アカウントからsuを実行すると、フィッシュがデフォルトのシェルとして設定されているルートに昇格できます。しかし、

student@localhost ~> whoami
root
student@localhost ~>
/root
student@localhost ~> sudo chsh -s /usr/local/bin/fish student
Changing shell for student. 
chsh: user attribute not changed: Invalid contents of lock `/etc/passwd.lock`

/etc/passwd を見ると、変更は発生していないことがわかります。

どうすればいいか、何かアイデアはありますか? ロック ファイルが続行を妨げているようです。

答え1

以前にファイルを変更しようとしたときに、/etc/passwdロック ファイルにゴミが残ってしまったようです。

このロック ファイルは、複数の更新が互いにキャンセルされるのを防ぎます。そのシステムを使用しているのが自分だけの場合は、ファイルを削除し/etc/passwd.lockて再試行してください。

関連情報