Изменить оболочку по умолчанию, если пользователь не находится в / etc / passwd

Любые идеи о том, как изменить оболочку на рыбу?

$ 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
8
задан 24 August 2017 в 03:30

6 ответов

Вот подсказка: /usr/bin/chsh.ldap: "/usr/bin/fish" is an invalid shell. Кажется, что вы должны добавить /usr/bin/fish в /etc/shells.

1
ответ дан 18 July 2018 в 08:01

Чтобы процитировать ajmitch здесь,

Вы можете установить рыбу в качестве оболочки по умолчанию, запустив chsh -s which fish. Затем выйдите из системы и вернитесь. (Чтобы установить его обратно в bash, вам нужно использовать Рыбий синтаксис, конечно, как этот chsh -s (который bash))

Просто используйте chsh -s which fish И не забудьте выйти из системы и снова войти в систему или перезагрузить компьютер.

By как это может быть возможным здесь: здесь

-1
ответ дан 18 July 2018 в 08:01

Удерживайте, это пользователь LDAP, в LDAP есть параметр, который позволяет вам изменить оболочку по умолчанию для пользователя в них.

Вы можете установить ldap-account-manager, который дает вам web-интерфейс для конфигурации ldap.

apt install ldap-account-manager

ldap-account-manager

Это можно сделать на любом сервере, на котором вы хотите обрабатывать конфигурацию на , Так как вам все равно придется настраивать сервер в конфигурационных файлах. Но я бы порекомендовал вам установить его на сервере, на котором работает ldap, просто чтобы вы могли запомнить его легче.

1
ответ дан 18 July 2018 в 08:01

Вот подсказка: /usr/bin/chsh.ldap: "/usr/bin/fish" is an invalid shell. Кажется, что вы должны добавить /usr/bin/fish в /etc/shells.

1
ответ дан 24 July 2018 в 18:57

Чтобы процитировать ajmitch здесь,

Вы можете установить рыбу в качестве оболочки по умолчанию, запустив chsh -s which fish. Затем выйдите из системы и вернитесь. (Чтобы установить его обратно в bash, вам нужно использовать Рыбий синтаксис, конечно, как этот chsh -s (который bash))

Просто используйте chsh -s which fish И не забудьте выйти из системы и снова войти в систему или перезагрузить компьютер.

By как это может быть возможным здесь: здесь

-1
ответ дан 24 July 2018 в 18:57
  • 1
    Hmm..chsh работает только в том случае, если пользователь в /etc/passwd.$ chsh -s `which fish` Password: chsh: user 'jaan' does not exist in /etc/passwd – Abhishek Bhatia 27 August 2017 в 02:27
  • 2
    Ах ... да ... я не видел эту часть ... – Ray Antebioni 27 August 2017 в 03:46
  • 3
    Это не работает, когда управление учетными записями осуществляется LDAP. -1 – David Foerster 29 August 2017 в 19:59

Удерживайте, это пользователь LDAP, в LDAP есть параметр, который позволяет вам изменить оболочку по умолчанию для пользователя в них.

Вы можете установить ldap-account-manager, который дает вам web-интерфейс для конфигурации ldap.

apt install ldap-account-manager

ldap-account-manager

Это можно сделать на любом сервере, на котором вы хотите обрабатывать конфигурацию на , Так как вам все равно придется настраивать сервер в конфигурационных файлах. Но я бы порекомендовал вам установить его на сервере, на котором работает ldap, просто чтобы вы могли запомнить его легче.

1
ответ дан 24 July 2018 в 18:57

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

Похожие вопросы: