Chcę zmienić domyślną env powłoki
i uruchom chsh -s /bin/zsh
jako 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/passwd
jako
root:x:0:0:root:/root:zsh
i chsh
poprosi o hasło przy każdej próbie
po prostu edytuję /etc/passwd
plik ręcznie i wszystko jest w porządku.
głupi błąd i dziękuję za twoje odpowiedzi
Odpowiedzi:
Sprawdź plik / etc / shells i dodaj / bin / zsh do pliku, jeśli ten wiersz nie istnieje.
źródło
/etc/passwd
, czy wprowadzam poprawny format nazwy powłoki. Thx/etc/passwd
. Dzięki @txworking!/etc/passwd
dla konta root ...Sprawdź swoje
/etc/passwd
. W moim przypadku podałem wcześniej niepoprawną powłokęchsh
i to było przyczyną problemu.Zmieniłem go z
zsh
powłoki na/bin/zsh
i to sprawiło, że problem zniknął.źródło
Wygląda na to, że twoja ścieżka może się mylić. Aby to sprawdzić:
Jeśli wynikiem jest / usr / bin / zch, powinno to załatwić sprawę:
* edycja literówki.
źródło
Napotkałem ten sam problem. za każdym razem, gdy wpisuję polecenie chsh , służy do monitowania
Ale rozwiązałem to, dokonując pewnych modyfikacji w
/etc/passwd
plikupo prostu otwórz terminal główny i zmodyfikuj
/etc/passwd
plik, którego możesz użyć edytor pico, nano lub vi dla tego zadania, do którego używam vinastę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
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/ksh
w/etc/shells
pliku ręcznie ...na przykład jesteś w bashu i chcesz zmienić go na ksh
po prostu przejdź do konta w
/etc/passwd
pliku i w ostatnim polu edytuj/bin/bash
do/bin/ksh
lub/bin/ksh93
(jak w twoimcat /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.
źródło
Musisz uruchomić swój kod jako sudo:
Miałem też ten sam problem i zadziałało!
źródło