web-dev-qa-db-ja.com

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

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

rootユーザーとしてchsh -s /bin/zshを実行し、

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

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

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

どんな助けでもいただければ幸いです


これは/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ファイルを手動で編集するだけで、すべて問題ありません。

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

13
txworking

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

5
Yuriy Nazarov

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

私はそれをシェルとしてのzshから/bin/zshに変更し、それによって問題が解消されました。

4
funroll

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

Sudo chsh -s /bin/zsh

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

1
Yilmazerhakan

パスが間違っているようです。確認するには:

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

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

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

*タイプミスを編集します。

1
nickdew

私も同じ問題に直面しました。私が入力したときはいつでもchshプロンプトに使用します

_chsh: PAM authentication failed
_

しかし、私は_/etc/passwd_ファイルに変更を加えることで解決しました

_Users of kali-linux
_

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

_vi /etc/passwd
_

次に、ユーザーアカウントを検索します。シェルを目的のシェルに変更します。新しいユーザーがLinuxのディストリビューションに目的のシェルをインストールして、Linuxにどのシェルが存在するかを確認するには、次のように入力します。

_cat /etc/shells
_

シェルがインストールされていて、それを_/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ユーザーのようなrootターミナルもあるからです。

1
Dhawal S