web-dev-qa-db-ja.com

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

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

私はどんな助けや洞察にも感謝します。

6
Iain

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

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

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

注:

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

いつでもashのユーザー構成から自動的にzshを自動的に開始できます。そんな感じ

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