Как изменить оболочку по умолчанию для ВСЕХ ПОЛЬЗОВАТЕЛЕЙ на bash?

38

Я хочу, чтобы у каждого нового пользователя по умолчанию была оболочка bash.

Я знаю, что для того, чтобы изменить собственную оболочку на bash, вы бы использовали команду "chsh -s / bin / bash", но как мне автоматически установить оболочку всех будущих пользователей на bash по умолчанию?

Кофемолка
источник

Ответы:

63

Добавить пользователя

adduserФайл по умолчанию является /etc/adduser.conf. Оболочка по умолчанию, определяемая DSHELLпеременной, /bin/bashпо умолчанию.

useradd

Скорее всего, вам это не нужно, потому что useradd - это утилита очень низкого уровня, и она почти никогда не используется напрямую.

Если вы используете useradd, отредактируйте /etc/default/useraddфайл скелета (хотя не забудьте сделать резервную копию).

Установите SHELLпеременную /bin/bashвместо /bin/sh.

Теперь каждый раз, когда вы используете useraddдля добавления нового пользователя bash, автоматически устанавливается его оболочка по умолчанию.

Уже существующие пользователи

Если вы хотите изменить оболочку уже существующих пользователей, вам нужно отредактировать /etc/passwdфайл (пожалуйста, убедитесь, что у него есть резервная копия).

Вот описание столбцов

  1. логин
  2. необязательный зашифрованный пароль
  3. числовой идентификатор пользователя
  4. числовой идентификатор группы
  5. имя пользователя или поле комментария
  6. домашний каталог пользователя
  7. необязательный пользовательский интерпретатор команд

В этом порядке разделены двоеточиями (:) вот так.

root:x:0:0:root:/root:/bin/bash

Для получения дополнительной информации об этом файле обратитесь к странице руководства man 5 passwd.

Октавиан А. Дамиан
источник
4
Я думаю, что более безопасный способ изменить оболочку другого пользователя будет что-то вроде sudo -u $USER chsh -s $SHELL.
Джек О'Коннор,
1
@ JackO'Connor, вы должны опубликовать это как ответ.
Октавиан А. Дамиан
Кажется, это не работает в Ubuntu 16.04. Кто-нибудь знает исправление.
Harshdeep
26

Как указал Октавиан, способ изменения значений по умолчанию зависит от того, как вы создаете пользователя. Я только что попытался создать нового пользователя в настройках Gnome, и, похоже, это следует /etc/default/useradd, так что это может быть вашим лучшим выбором. Для существующих пользователей самый безопасный способ изменить чужую оболочку входа - это usermod :

usermod -s /bin/bash $USERNAME

Если вы не root, вам понадобится sudo . Альтернативой является sudo для пользователя, которого вы хотите изменить, и просто запустите chsh , например так:

sudo -u $USERNAME chsh -s /bin/bash

Лучше избегать редактирования /etc/passwdвручную, потому что ошибка там может сломать все виды вещей.

Джек О'Коннор
источник
1

Если вы действительно хотите, чтобы все пользователи на сервере имели bash (именно этот вопрос и задавался), вы можете запустить команду:

sudo dpkg-reconfigure dash

И затем выберите НЕ тире. Как объясняется в этом ответе,

Как сделать так, чтобы / bin / sh указывал на / bin / bash?

Это не только устанавливает bash в качестве оболочки по умолчанию, но и правильно отображает sh и man-страницы.

Надеюсь это поможет.

MontyThreeCard
источник