chsh:PAM認証に失敗しました


13

デフォルトのシェル環境を変更したい

chsh -s /bin/zshrootユーザーとして実行し、

エラーメッセージが表示されました:chsh: PAM authentication failed

私はこのスレッドを見つけますhttp://ubuntuforums.org/showthread.php?t=1702833

しかし、答えは私の問題を解決しませんでした

助けていただければ幸いです


これは/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

これは/ 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

私は実行するために使用されることがわかりchsh -s zsh 、これは最初の行を変更します/etc/passwdように

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

そして、chshあなたがしようとするパスワードを尋ねます

/etc/passwdファイルを手動で編集するだけで問題ありません。

愚かな間違いとあなたの返信に感謝


/etc/pam.d/chshを提供できますか?(ところで、一般的にルートログインシェルは最小限/安定であると考えられています。ログイン後に起動するのではなく、デフォルトのシェルとしてzshを使用したいのですか?)
symcbean

ログインしたばかりのときにzshシェルを自動的に入力したいのですが、これは良くないかもしれません。
txworking

回答:


5

/ etc / shellsファイルを確認し、この行が存在しない場合は/ bin / zshをファイルに追加します。


3
この答え/etc/passwdは、シェル名の正しい形式を入力したかどうかファイルをチェックするように促しました。Thx
txworking

私にとっては、Vagrant VMを使用して、変更する必要がありました/etc/passwd。ありがとう@txworking!
wulftone

私にとって、この問題は/etc/passwd、rootアカウントのシェル内部の誤った構成によって呼び出されます
テーパー

3

を確認してください/etc/passwd。私の場合、chsh以前に無効なシェルを指定していましたが、それが問題の原因でした。

zshシェルからに変更し/bin/zshたため、問題はなくなりました。


1

あなたの道は間違っているように見えます。確認するには:

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

結果が/ usr / bin / zchの場合、これでうまくいくはずです。

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

*タイプミスの編集。


1

私は同じ問題に直面しました。chshを入力するたびに、プロンプトに使用します

chsh: PAM authentication failed

しかし、私は/etc/passwdファイルにいくつかの変更を加えることでそれを解決しました

Users of kali-linux

ルートターミナルを開いて/etc/passwdファイルを変更するだけで、この仕事にpico、nano、またはviエディタを使用できます

vi /etc/passwd

次に、ユーザーアカウントを検索します。シェルを希望のシェルに変更します。希望するシェルがlinuxのディストリビューションにインストールされていることを確認して、新しいユーザーがlinuxに存在するシェルを確認してください。

cat /etc/shells

それはあなたがシェルをインストールする必要があり、すべてであっ.IFそれらを一覧表示し、で、あなたはそれを見ることができない/etc/shellあなたが思うのためのシェルと言うのリンクと場所のパスを作成する必要が/bin/ksh/etc/shells手動でファイル...

たとえば、bashにいて、kshに変更したい場合

/etc/passwdファイルと最後のフィールド編集でアカウントに移動するだけです

/bin/bash/bin/kshたり/bin/ksh93(あなたのようにcat /etc/shells

ログアウトしてログインするだけでいい...

他のディストリビューション(たとえば)ubuntuのユーザー向け

入力する

sudo -H gnome-terminal (ルート端末を取得するため)

また、プロセスは上記と同じです。あなたもkali-linuxユーザーのようなルート端末を持っているからです。


1

コードをsudoとして実行する必要があります。

sudo chsh -s /bin/zsh

私も同じ問題を抱えていましたが、うまくいきました!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.