Любые идеи о том, как изменить оболочку на рыбу?
$ 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
Вот подсказка: /usr/bin/chsh.ldap: "/usr/bin/fish" is an invalid shell. Кажется, что вы должны добавить /usr/bin/fish в /etc/shells.
Чтобы процитировать ajmitch здесь,
Вы можете установить рыбу в качестве оболочки по умолчанию, запустив chsh -s which fish. Затем выйдите из системы и вернитесь. (Чтобы установить его обратно в bash, вам нужно использовать Рыбий синтаксис, конечно, как этот chsh -s (который bash))Просто используйте chsh -s which fish И не забудьте выйти из системы и снова войти в систему или перезагрузить компьютер.
By как это может быть возможным здесь: здесь
Удерживайте, это пользователь LDAP, в LDAP есть параметр, который позволяет вам изменить оболочку по умолчанию для пользователя в них.
Вы можете установить ldap-account-manager, который дает вам web-интерфейс для конфигурации ldap.
apt install ldap-account-manager
Это можно сделать на любом сервере, на котором вы хотите обрабатывать конфигурацию на , Так как вам все равно придется настраивать сервер в конфигурационных файлах. Но я бы порекомендовал вам установить его на сервере, на котором работает ldap, просто чтобы вы могли запомнить его легче.
Вот подсказка: /usr/bin/chsh.ldap: "/usr/bin/fish" is an invalid shell. Кажется, что вы должны добавить /usr/bin/fish в /etc/shells.
Чтобы процитировать ajmitch здесь,
Вы можете установить рыбу в качестве оболочки по умолчанию, запустив chsh -s which fish. Затем выйдите из системы и вернитесь. (Чтобы установить его обратно в bash, вам нужно использовать Рыбий синтаксис, конечно, как этот chsh -s (который bash))Просто используйте chsh -s which fish И не забудьте выйти из системы и снова войти в систему или перезагрузить компьютер.
By как это может быть возможным здесь: здесь
Удерживайте, это пользователь LDAP, в LDAP есть параметр, который позволяет вам изменить оболочку по умолчанию для пользователя в них.
Вы можете установить ldap-account-manager, который дает вам web-интерфейс для конфигурации ldap.
apt install ldap-account-manager
Это можно сделать на любом сервере, на котором вы хотите обрабатывать конфигурацию на , Так как вам все равно придется настраивать сервер в конфигурационных файлах. Но я бы порекомендовал вам установить его на сервере, на котором работает ldap, просто чтобы вы могли запомнить его легче.