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

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

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

3 ответа

Решение

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

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 man 5 passwd,

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

usermod -s /bin/bash $USERNAME

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

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

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

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

sudo dpkg-reconfigure dash

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

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

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

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

Другие вопросы по тегам