Mein Problem: Ich kann meine Standard-Shell für den Benutzer „Student“ unter CentOS 7 nicht auf Fish-Shell einstellen. Ich habe Fish-Shell installiert, indem ich die .gz-Datei heruntergeladen, konfiguriert, make, make install ausgeführt habe.
output of which fish
/usr/local/bin/fish
Wenn ich su vom Standard-Studentenkonto aus ausführe, kann ich mich zum Root hochstufen, wobei fish als Standard-Shell eingestellt ist. Aber wenn ich
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`
Wenn ich mir /etc/passwd anschaue, kann ich sehen, dass keine Änderungen aufgetreten sind.
Irgendeine Idee, was ich tun kann? Es sieht so aus, als würden die Sperrdateien mich daran hindern, fortzufahren.
Antwort1
Es sieht so aus, als ob einer Ihrer vorherigen Versuche, die /etc/passwd
Datei zu ändern, Datenmüll in der Sperrdatei hinterlassen hat.
Diese Sperrdatei verhindert mehrere Updates, die sich gegenseitig aufheben würden. Wenn Sie der einzige sind, der dieses System verwendet, entfernen Sie die Datei /etc/passwd.lock
und versuchen Sie es erneut.