zsh がルートのデフォルトシェルに設定されています。

zsh がルートのデフォルトシェルに設定されています。

rootとしてログインすると、zshをデフォルトのシェルに設定できますか?これを行い、chsh -s /bin/zshrootパスワードを使用して認証しましたが失敗しました。

答え1

1つの秘密は、zshを使用するように対話型ルートシェルを設定し、/ bin / shを使用し続けるように非対話型シェルを残すことです。

これにより、他の応答で説明されている「予想」問題が引き続き発生する可能性がありますが、少なくとも非対話型プロセスは中断されません。

/root/.bashrc の末尾に以下を追加します。

if [ ! -z "$PS1" ]; then
    exec /bin/zsh $*
fi 

答え2

通常、ルートシェルを/bin/shから変更するのは良い考えではありません。たとえば、UIDがまだゼロのzrootなどの他のアカウントを追加することをお勧めしますが、zshをシェルとして使用することをお勧めします。ただし、質問に答えるためにrootとしてログインしている場合は、を使用する必要はありませんsudo

chsh -s /bin/zsh root

rootchshのリクエストに応じてパスワードを入力してください。 「ルート」を明示的に指定することをお勧めします。

「fred」でログインした場合

sudo -i

パスワードを使用してパスワード要求に応答しますfred's。これにより、ルートシェルが提供されます。最初にrootとしてログインしたように進みます。

/bin/zsh が /etc/shells にリストされていることを確認してください。

答え3

実行するためのroot権限を忘れた可能性があります。次のコマンドを実行します。

$ sudo chsh -s /bin/zsh

答え4

この目的のために、通常のエディタでpasswdファイルを編集することはお勧めできません。

vipw

シェルをzshに変更しました。正直なところ、ルートシェルを変更したい理由を理解していません。ルートアカウントは管理上の問題にのみ使用する必要があり、権限のないユーザーが一般的なタスクを使用するにはルートアカウントを使用する必要があります。その後、別のttyにログインし、終了(非常に重要)して現在のttyとの接続を切断します。機能すると、新しいシェルを見ることができます。 zshをすぐに使用したい場合は、zshと入力してください。結論として

I want to use my new shell now = type zsh
I want to use my new shell + change = chsh -s or vipw

ps = zshがこのパス(/bin /sbin..)にインストールされておらず、シングルユーザーログインにrootを使用する必要がある場合、シェルが見つからないため機能しません。これは /Mount from でも発生する可能性があります。 root/を他のlvmまたはusr分離システムのパーティションとして

関連情報