Як змінити оболонку за замовчуванням в обліковому записі домену


13

Я використовую обліковий запис домену samba4 для входу на свій ноутбук. Я хотів спробувати zsh, але оскільки мій користувач не проживає, /etc/passwdя виявив, що chshне можу знайти свого користувача. Хтось може порадити, як я можу змінити свою login_shell?

Я нічого не міг побачити в своєму ldap.conf, nssswitch.confабо нічого, що в /etc/pam.dцьому допомогло ...

Дивлячись на контролер домену, я думав, що, можливо, я можу використати samba-інструмент, але я не побачив нічого в допомозі, яке б вказувало на мене в правильному напрямку ...

Відповіді:


24

Я запитав про це в каналі #suse на Freenode, і Miuku запропонував те саме, що і Arul, проте він згадав дві речі, якщо я використовував домен Windows, я міг би встановити атрибут loginShell.

На жаль, я перебуваю на домені samba, тому це не допомогло. Але його остаточна пропозиція була ідеальною, отримайте результат:

getent passwd USERNAME

Це буде мати дійсний еквівалент для вашого користувача в / etc / passwd, візьміть це, вставте його в / etc / passwd та оновіть оболонку в кінці для дійсного шляху оболонки, який ви хочете використовувати. Таким чином він не змінює його для всіх користувачів, і ви можете переконатися, що оболонка знаходиться на машині, на якій ви налаштовуєте це, перш ніж вносити зміни.


Якщо ви не хочете , щоб скопіювати і вставити, ви можете використовувати: getent passwd `id -un` | sudo tee -a /etc/passwd. Не впевнений, чи працює він у всіх оболонках, але принаймні, bash і tcsh - це нормально.
Том Салееба

Це в поле RHEL 7, підключене до домену Windows AD, призвело до того, що я був заблокований із сервера, поки рядок не був видалений з файлу / etc / passwd ...
Taegost

Дякую за інформацію @Taegost, я не пробував RHEL
Rumbles

5

У мене було саме таке питання. Оскільки не у всіх машинах у моєму домені встановлено zsh, і оскільки я не хотів впливати на всіх користувачів, я закінчив розміщувати свій .bashrc:

if [ -x /usr/bin/zsh ]; then
  echo 'starting zsh'
  # export SHELL=/bin/zsh #edit: this is probably not what you want, see the comment.
  exec /usr/bin/zsh
fi

Це може бути неелегантним, але, принаймні, воно виконує роботу.


Хтось на моїй роботі робив щось подібне останнім часом, у нього виникли проблеми з його методом, не завантажуючи файл .zshrc. Я не знаю, чи працював би ваш метод у цьому відношенні, ви це пробували? Крім того, ваша змінна SHELL не така, як шлях до вашого скриньки zsh, це правильно? Я змінив їх конфігурацію на свій спосіб встановити його у файлі passwd
Rumbles

Цікаво - мій .zshrc правильно прочитаний. з приводу вашого другого пункту, дякую, що виклали це, це була помилка з мого боку. Дивіться тут відповідь: unix.stackexchange.com/questions/330233/…
Маттео

Ну це, безумовно, один із способів цього зробити, я все ж вважаю за краще встановити його у файлі / etc / passwd, як і у моїй прийнятій відповіді, оскільки ви не викликаєте bash, а потім завантажуйте zsh з bash (плюс я думаю, якщо натиснути ctrl-D у у вашій установці ви скинуті на bash shell?) - Це вимагає, щоб користувач переконався, що ви встановили zsh, а адміністратор здійснив зміни
Rumbles

Чи не було б краще, а не використовувати /usr/bin/zsh, замість цього використовувати exec /usr/bin/zshдля заміни bashпроцесу zshоболонки на процес оболонки?
Tripp Kinetics

Я думаю, ти можеш мати рацію @TrippKinetics.
Маттео Джані

2

Якщо у вас є доступ для редагування конфігурації контролера домену samba, ви можете встановити наступне властивість, яке дозволяє встановити оболонку в smb.conf

template shell    = /bin/zsh

Не впевнений, що станеться, якщо ви увійдете в машину, на якій не встановлено zsh (не всі дистрибутиви встановлено zsh за замовчуванням), але я гадаю, що це викликатиме оболонку distro за замовчуванням.

Якщо ви просто хочете спробувати це, просто введіть zsh, щоб отримати нижню частину, яку я впевнений, ви це вже знаєте.


Дякую, але чи не це вплине на всіх користувачів, не тільки на мене?
Гуркіт

Так, це глобальний параметр, який впливає на всіх користувачів. У цьому випадку всі користувачі, які zshвстановили. Я не впевнений, що ви можете обмежити це конкретним користувачем, але я перевірив би idmap uidпараметр, який може вам це зробити.
Арул Сельван

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