Я хочу установить оболочку входа (оболочку, которую они получают при входе в систему) для всех существующих и будущих пользователей.
Правильный способ изменить оболочку входа в систему кажется chsh
. Но это позволяет мне изменить оболочку только существующих пользователей.
Я мог бы поместить команду оболочки в /etc/profile
, но это тоже далеко не чистое решение.
Я использую debian и хочу установить zsh в качестве оболочки по умолчанию.
Зависит от того, что вы используете для добавления пользователей. Если это adduser
команду, затем отредактируйте свой /etc/adduser.conf
file - там вы найдете вариант оболочки входа по умолчанию, а именно: DSHELL
.
Если, с другой стороны, вы предпочитаете использовать useradd
затем используйте его с -s <shell of choice>
параметр.
Если вы хотите изменить оболочку существующих пользователей, вы можете просто отредактировать /etc/passwd
и поменяй там. sed
- идеальный выбор, если вам нужно внести изменения в несколько строк. Бегать sed 's/bash$/zsh/g' /etc/passwd
и посмотрите, что он делает. Вы должны увидеть содержимое своего /etc/passwd
с каждым bash
заменен на zsh
. Если вас устраивает результат, вы можете запустить ту же команду с параметром -i: sed -i 's/bash$/zsh/g' /etc/passwd
. Не забудьте на всякий случай сделать копию оригинального файла :)
Я думаю, вы можете установить значение по умолчанию, отредактировав файл / etc / default / useradd и изменив SHELL=
линия.
Я думаю, что useradd позволяет вам установить это: useradd -D
When invoked with only the -D option, useradd will display the current
default values. When invoked with -D plus other options, useradd will
update the default values for the specified options. Valid
default-changing options are:
<...snip...>
-s, --shell SHELL
The name of a new user's login shell.
This option sets the SHELL variable in /etc/default/useradd.