По-умолчанию во FreeBSD используется sh
для обычных пользователей, и csh
для пользователя root
.
Что бы изменить shell
для пользователя, можно воспользоваться несколькими вариантами.
Убедитесь, что нужный shell
присутствует в файле /etc/shells
:
# cat /etc/shells ... /bin/sh /bin/csh /bin/tcsh /usr/local/bin/bash /usr/local/bin/rbash
Проверьте текущее окружение:
# echo $shell /bin/csh
Теперь можно отредактировать файл /etc/passwd
и указать новый shell
для пользователя вручную:
# vim /etc/passwd ... root:*:0:0:Charlie &:/root:/bin/csh ...
Достаточно заменить /bin/csh
на /usr/local/bin/bash
, и выполнить повторный вход в систему.
Что бы изменить shell
без повторного входа – достаточно запустить:
# exec /usr/local/bin/bash
Проверяем:
# echo $0 /usr/local/bin/bash
Ещё один вариант – с помощью команды chsh.
Если выполнить её без опций – она откроет текстовый редактор, в котором надо изменить строку Shell:
.
Другой вариант – выполнить chsh
с ключём -s
:
# chsh -s /bin/sh setevoy chsh: user information updated
После ключа -s
указывается новый shell
и пользователь, для которого необходимо его изменить. Если пользователь не указан – информация будет изменена для пользователя, запустившего команду.
Проверим:
# cat /etc/passwd | grep setevoy setevoy:*:1001:1001:User &:/home/setevoy:/bin/sh
Альтернатива – с помощью утилиты chpass
, которая работает аналогично chsh
:
# chpass -s /usr/local/bin/bash setevoy chpass: user information updated # cat /etc/passwd | grep setevoy setevoy:*:1001:1001:User &:/home/setevoy:/usr/local/bin/bash