Назад | Перейти на главную страницу

Как изменить глобальную оболочку входа в систему в системе unix?

Я хочу установить оболочку входа (оболочку, которую они получают при входе в систему) для всех существующих и будущих пользователей.

Правильный способ изменить оболочку входа в систему кажется 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.