chsh: uwierzytelnianie PAM nie powiodło się

13

Chcę zmienić domyślną env powłoki

i uruchom chsh -s /bin/zshjako użytkownik root,

ale pojawił się komunikat o błędzie: chsh: PAM authentication failed.

znajduję ten wątek http://ubuntuforums.org/showthread.php?t=1702833

ale odpowiedź nie rozwiązała mojego problemu

każda pomoc będzie mile widziana


to jest zawartość /etc/pam.d/chsh

#
# The PAM configuration file for the Shadow `chsh' service
#

# This will not allow a user to change their shell unless
# their current one is listed in /etc/shells. This keeps
# accounts with special shells from changing them.
auth       required   pam_shells.so

# This allows root to change user shell without being
# prompted for a password
auth            sufficient      pam_rootok.so

# The standard Unix authentication modules, used with
# NIS (man nsswitch) as well as normal /etc/passwd and
# /etc/shadow entries.
@include common-auth
@include common-account
@include common-session

taka jest zawartość / etc / shells

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/tmux
/usr/bin/screen
/bin/zsh
/usr/bin/zsh

stwierdzam, że kiedyś to uruchomiłem chsh -s zsh , zmieni pierwszą linię /etc/passwdjako

root:x:0:0:root:/root:zsh

i chshpoprosi o hasło przy każdej próbie

po prostu edytuję /etc/passwdplik ręcznie i wszystko jest w porządku.

głupi błąd i dziękuję za twoje odpowiedzi

txworking
źródło
Czy możesz podać /etc/pam.d/chsh? (BTW to na ogół uważane za dobry pomysł na rootem logowania będzie minimalny / stabilny - jest tam areason chcesz zsh jako domyślnej powłoki zamiast uruchomieniem po zalogowaniu?)
symcbean
Chcę tylko automatycznie wprowadzić powłokę Zsh, kiedy się zalogowałem, może to nie jest dobre.
txworking

Odpowiedzi:

5

Sprawdź plik / etc / shells i dodaj / bin / zsh do pliku, jeśli ten wiersz nie istnieje.

Jurij Nazarow
źródło
3
ta odpowiedź zainspirowała mnie do sprawdzenia /etc/passwd, czy wprowadzam poprawny format nazwy powłoki. Thx
txworking
Dla mnie, używając włóczęgi VM, musiałem się zmienić /etc/passwd. Dzięki @txworking!
wulftone
Dla mnie problem jest wywoływany przez błędną konfigurację powłoki wewnątrz /etc/passwddla konta root ...
stożek
3

Sprawdź swoje /etc/passwd. W moim przypadku podałem wcześniej niepoprawną powłokę chshi to było przyczyną problemu.

Zmieniłem go z zshpowłoki na /bin/zshi to sprawiło, że problem zniknął.

funroll
źródło
1

Wygląda na to, że twoja ścieżka może się mylić. Aby to sprawdzić:

[nick ~]$ which zsh
/usr/bin/zsh

Jeśli wynikiem jest / usr / bin / zch, powinno to załatwić sprawę:

[nick ~]$ chsh -s /usr/bin/zsh

* edycja literówki.

nickdew
źródło
1

Napotkałem ten sam problem. za każdym razem, gdy wpisuję polecenie chsh , służy do monitowania

chsh: PAM authentication failed

Ale rozwiązałem to, dokonując pewnych modyfikacji w /etc/passwdpliku

Users of kali-linux

po prostu otwórz terminal główny i zmodyfikuj /etc/passwdplik, którego możesz użyć edytor pico, nano lub vi dla tego zadania, do którego używam vi

vi /etc/passwd

następnie wyszukaj konto użytkownika. i zmień powłoki na żądaną powłokę, upewnij się, że żądana powłoka jest zainstalowana w twojej dystrybucji Linuksa, aby nowy użytkownik mógł zobaczyć, jakie powłoki są obecne w ich Linuksie, po prostu wpisz

cat /etc/shells

wyświetla je tam. Jeśli w ogóle masz zainstalowaną powłokę i nie możesz jej zobaczyć /etc/shell, musisz utworzyć łącze i ścieżkę powłoki, na przykład załóżmy, że /bin/kshw /etc/shellspliku ręcznie ...

na przykład jesteś w bashu i chcesz zmienić go na ksh

po prostu przejdź do konta w /etc/passwdpliku i w ostatnim polu edytuj

/bin/bashdo /bin/kshlub /bin/ksh93(jak w twoim cat /etc/shells)

po prostu wyloguj się i zaloguj i możesz zacząć ...

dla użytkowników innych dystrybucji (powiedzmy) ubuntu

Wpisz

sudo -H gnome-terminal (aby uzyskać terminal root)

a proces jest taki sam jak powyżej, ponieważ ty również masz terminal root jak użytkownik Kali-Linux.

Dhawal S.
źródło
1

Musisz uruchomić swój kod jako sudo:

sudo chsh -s /bin/zsh

Miałem też ten sam problem i zadziałało!

Yilmazerhakan
źródło