Змініть оболонку за замовчуванням, коли користувач не в / etc / passwd


8

Будь-які ідеї, як можна змінити шкаралупу на рибу?

$ sudo usermod -s /usr/bin/fish jaan
usermod: user 'jaan' does not exist in /etc/passwd
$ getent passwd $USER
jaan:x:15466:94:Jaan Altosaar:/home/jaan:/bin/zsh

Пов'язані питання: користувач не існує в / etc / passwd при спробі змінити оболонку за замовчуванням. Схоже, він використовує ldap.

$ cat /etc/nsswitch.conf
passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap

# Having the NOTFOUND=return bit was breaking dns resolution on web1 and web2. But we probably
# don't want any of the mdns stuff so let's get rid of it all.
#hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
hosts:          files dns

networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       ldap
automount:      ldap

Тому я встановив відповідний пакет ldap.

$ chsh.ldap
LDAP password for jaan:
Enter the new value, or press ENTER for the default
  Login Shell [/bin/zsh]: /usr/bin/fish
Traceback (most recent call last):
  File "/usr/bin/chsh.ldap", line 69, in <module>
    constants.NSLCD_USERMOD_SHELL: shell,
  File "/usr/share/nslcd-utils/nslcd.py", line 128, in usermod
    assert con.get_response() == constants.NSLCD_RESULT_BEGIN
  File "/usr/share/nslcd-utils/nslcd.py", line 103, in get_response
    return self.read_int32()
  File "/usr/share/nslcd-utils/nslcd.py", line 71, in read_int32
    return _int32.unpack(self.read(_int32.size))[0]
struct.error: unpack requires a string argument of length 4
$ which fish
/usr/bin/fish
$ chsh.ldap
LDAP password for jaan:
Enter the new value, or press ENTER for the default
  Login Shell [/bin/zsh]: "/usr/bin/fish"
/usr/bin/chsh.ldap: "/usr/bin/fish" is an invalid shell
$ /usr/bin/fish
(standard_in) 1: syntax error
Welcome to fish, the friendly interactive shell

Це навіть можливо?
Джордж Удосен

@George, будь ласка, перевірте редагування.
Абхішек Бхатія


@ Джордж, це не працює.
Абхішек Бхатія

Шлях оболонка повинна бути /etc/shellsдля chsh-як інструментів , щоб прийняти його.
муру

Відповіді:



1

Тримайся, це користувач LDAP, в LDAP є налаштування, що дозволяє змінити оболонку за замовчуванням для користувача в них.

Ви можете встановити ldap-account-manager-менеджер, який дає вам веб-фронт для конфігурації ldap.

apt install ldap-account-manager

введіть тут опис зображення

Це можна зробити на будь-якому сервері, на якому потрібно обробляти конфігурацію. Оскільки вам потрібно буде налаштувати сервер у конфігураційних файлах. Але я б рекомендував вам встановити його на сервері, на якому фактично працює ldap, просто так ви зможете запам'ятати його легше.


-1

Щоб цитувати тут аймітч ,

Ви можете встановити рибу як оболонку за замовчуванням, запустивши chsh -s. which fish Потім вийдіть із системи та поверніться.

Просто використовуйте chsh -s which fishІ не забудьте вийти з системи та увійти в систему назад або перезавантажити комп'ютер.

До речі, це може бути можливим дублікатом тут: Як встановити рибу як оболонку за замовчуванням?


Хм..чш працює лише в тому випадку, якщо користувач в / etc / passwd. $ chsh -s `which fish` Password: chsh: user 'jaan' does not exist in /etc/passwd
Абхішек Бхатія

А ... так ... Я не бачив цієї частини ...
Макс

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