chsh が存在しない場合にデフォルトのシェルを設定する方法

chsh が存在しない場合にデフォルトのシェルを設定する方法

私は、 というデフォルト シェルを持つ Busybox を実行している Synology DS412+ NAS ボックスを持っていますash。以前、ipkg install optware-develが実行され、インストールされbash、デフォルト シェルとして設定されました。 をipkg install zsh実行すると、インストールされましたzshが、デフォルト シェルとして設定されていません。chshは存在しません (Busybox は、カット ダウン システムを想定し、 のみがash使用されます)。デフォルト シェルを設定するにはどうすればよいでしょうか?

どのようなご助力やご意見でも大変ありがたく思います。

答え1

を編集することでログイン シェルを変更できます/etc/passwd。各行はコロンで区切られた値のリストで、最後の行がログイン シェルです。

user:x:1000:1000:User:/home/user:/usr/bin/zsh

存在する場合は/etc/shells、zsh (フルパス) を追加する必要があります。そうしないと、一部のサービスがユーザーに対して機能しない可能性があります。

注記:

ディスクの 1 つにインストールされている場合は、root (または管理目的に必要なユーザー) のログイン シェルを変更することはお勧めしませんzsh。ディスクがインストールされていなくても、root アクセスを維持したい場合があります。

zshashのユーザー設定から自動的に起動することもできます。

[ -x /usr/bin/zsh ] && exec /usr/bin/zsh

答え2

別の方法 Synology フォーラムのこの投稿から:

https://community.synology.com/enu/forum/1/post/150323

選択したエディタ(例:nano)で、次の行を〜/.profileに追加します。

エクスポート SHELL=/bin/bash exec /bin/bash

/bin/bashは選択したシェルへのパスです

関連情報