私のシェルがzshからbashに変更されたことを残りのシステムにどのように知らせることができますか?

私のシェルがzshからbashに変更されたことを残りのシステムにどのように知らせることができますか?

zshもっといいと思ってインストールしましたbash。復元せず、chsh -s /bin/bash直接提供したとおりに使用しました。You may not change the shell for 'cat'.

私も私の行を変更しました/etc/passwd

cat:x:1000:1000:cat,,,:/home/cat:/bin/zsh

到着

cat:x:1000:1000:cat,,,:/home/cat:/usr/bin/bash

which bash与えたので/usr/bin/bash)。

GNOME端末、xterm用語などは今私のシェルですbash

しかし、Enterキーを押すと、仮想端末にCtrl Alt N数字nキーがどこにあるかを確認し、自分でログインしようとします。

Ubuntu 15.10 mint-kitty ttyN

mint-kitty login: cat
Password:


/bin/zsh: no such file or directory 
exit

現れてログアウトしました。

グラフィックセッションに正常にログインできます。 (MDM+シナモン.)

私が知る限り、ユーザーのログインシェルはによって作成されます。 in/etc/passwdまたはへの言及はなく、inへの言及もありません。zsh.bashrc.profile/etc/profile

私のシェルが存在しないことをシステムの残りの部分にどのように伝えることができますかzsh

ベストアンサー1

このchshコマンドを使用すると、リストされたシェルからログインシェルを変更できます。/etc/shells、に記載されているシェルに/etc/shells。これはセキュリティ機能です。アカウントに制限されたシェル(にリストされていない/etc/shells)がある場合は、別のシェルに切り替えてアクセス権をアップグレードすることはできません。ユーザーは自分で変更できないシェルに切り替えてロックできません。もちろん、rootユーザーはこの制限から除外されます。

/etc/shellsシンボリックリンクなど、名前付きファイルを考慮しない代替方法を確認してください。として/etc/shellsリストされている場合、/bin/bashユーザーデータベースのエントリは(同じファイルである)または(へのシンボリックリンクにもかかわらず)で/bin/bashなければなりません。/bin/./bash/usr/bin/bash/bin/bash

シェルを終了する場合は、古いシェルを削除する前にスイッチバックを実行する必要がありますchsh。削除するとシェルが削除されるためです/etc/shells

シェルをもう一度変更することをお勧めします/bin/bash。これを行うにはroot権限が必要です。これにより、chsh後でもう一度実行できます。

Linuxでは、ローカルアカウントの場合、エントリによって/etc/passwdユーザーのログインシェルが決まります。 (互換性のために存在します/etc/passwdが、実際の参照ではないため、変更しないでください、または変更/etc/passwd後にいくつかの同期コマンドを呼び出す必要がある他のUnixバリアントではありません。)

参照がどこにあるかを説明できません/bin/zsh。迷子になった追加項目がないことを確認してください/etc/passwd

おすすめ記事