當 chsh 不存在時如何設定預設 shell

當 chsh 不存在時如何設定預設 shell

我有一個運行 Busybox 的 Synology DS412+ NAS 盒子,它的預設 shell 是ash.以前,ipkg install optware-devel已運行並安裝它bash並將其設定為預設 shell。運行ipkg install zsh已安裝zsh但未設定為預設 shell。chsh不存在(Busybox 假設一個精簡的系統並且只會ash被使用),那麼我該如何設定預設 shell?

我將非常感謝任何幫助或見解。

答案1

您可以透過編輯來變更登入 shell /etc/passwd。每行都是以冒號分隔的值列表,最後一個是登入 shell:

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

如果/etc/shells存在,您應該向其添加 zsh(完整路徑),否則某些服務可能無法為您的用戶工作。

筆記:

zsh如果安裝在其中一個磁碟上,我建議不要更改 root(或出於管理目的所需的任何使用者)的登入 shell 。您可能希望在未安裝磁碟的情況下仍具有 root 存取權。

您始終可以zsh從 ash 的使用者設定自動啟動。類似的東西

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

答案2

另一種方法來自 Synoology 論壇上的這篇文章:

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

在您選擇的編輯器(例如nano)中,將以下行新增至:~/.profile

導出 SHELL=/bin/bash 執行 /bin/bash

其中 /bin/bash 是您選擇的 shell 的路徑

相關內容