Як ви можете змінити оболонку за замовчуванням для ВСІХ КОРИСТУВАЧІВ на башти?


38

Я хочу, щоб кожен новий користувач за замовчуванням мав bash як свою оболонку.

Я знаю, що щоб змінити власну оболонку на bash, ви використовували б команду "chsh -s / bin / 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 man 5 passwd.


4
Я думаю, що більш безпечним способом зміни оболонки іншого користувача було б щось подібне sudo -u $USER chsh -s $SHELL.
Джек О'Коннор

1
@ JackO'Connor, ви також повинні відповісти на це як відповідь.
Октавіан А. Дам’ян

Схоже, це не працює в Ubuntu 16.04. Хтось знає виправлення.
Харшдейп

26

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

usermod -s /bin/bash $USERNAME

Якщо ви не root, вам потрібно буде судо це зробити. Альтернативою є sudo для користувача, якого ви хочете змінити, і просто запустити chsh , як це:

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

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


1

Якщо ви дійсно хочете, щоб всі користувачі на сервері мали bash (до чого насправді було задано питання), ви можете запустити команду:

sudo dpkg-reconfigure dash

А потім вибирайте НЕ тире. Як пояснено у цій відповіді,

Як я можу зробити / bin / sh вказувати на / bin / bash?

Мало того, що задає bash як оболонку за замовчуванням, але і переназначає sh та man сторінки правильно.

Сподіваюсь, це допомагає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.