Как изменить стандартную оболочку OpenWrt? - PullRequest
1 голос
/ 22 марта 2020

Оболочка OpenWrt по умолчанию - ash, но я хотел бы изменить ее на fish.

Когда я запустил chsh -s /usr/bin/fish (абсолютный путь fish), он вернул -ash: chsh: not found.

I изменил первую строку /etc/passwd с:

root:x:0:0:root:/root:/bin/ash

на:

root:x:0:0:root:/root:/usr/bin/fish

Я не смог войти снова (неверный пароль), и системный журнал показал:

authpriv.warn dropbear[14288]: User 'root' has invalid shell, rejected


Есть ли другой способ изменить оболочку по умолчанию?

(Кстати, я использую популярный форк OpenWrt вместо официального , но это, похоже, не причина этой проблемы)

1 Ответ

0 голосов
/ 22 марта 2020

Есть два способа решить эту проблему. Вы можете либо:

Добавить /usr/bin/fish к /etc/shells

Это решение предоставлено @ glenn-jackman выше в комментариях.

Или:

Замена dropbear на openssh-server

Я нашел другой способ: если у вас установлен openssh-server, я бы порекомендовал вам использовать его по умолчанию, следуя этому руководству .


И не забудьте изменить первую строку / etc / passwd на:

root:x:0:0:root:/root:/usr/bin/fish

...