Irgendwelche Ideen, wie ich die Schale in Fisch verwandeln kann?
$ 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
Verwandte Fragen: Der Benutzer ist in / etc / passwd nicht vorhanden, wenn versucht wird, die Standard-Shell zu ändern. Es scheint, als würde ldap verwendet.
$ 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
Also habe ich das relevante ldap-Paket installiert.
$ 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
command-line
etc
fish
chsh
Abhishek Bhatia
quelle
quelle
/etc/shells
fürchsh
-ähnlichen Werkzeuge , um es zu übernehmen.Antworten:
Hier ist ein Hinweis :
/usr/bin/chsh.ldap: "/usr/bin/fish" is an invalid shell
. Es scheint , dass Sie hinzufügen sollten/usr/bin/fish
zu/etc/shells
.quelle
chsh.ldap -s /usr/bin/zsh myusername
gibt mir eineSegmentation fault
.Warten Sie, es ist ein LDAP-Benutzer. In LDAP gibt es eine Einstellung, mit der Sie die Standard-Shell für den Benutzer in ihnen ändern können.
Sie können ldap-account-manager installieren , mit dem Sie ein Webfrontent für die ldap-Konfiguration erhalten.
Dies kann auf jedem Server erfolgen, auf dem Sie die Konfiguration durchführen möchten. Da müssen Sie den Server ohnehin in den Konfigurationsdateien konfigurieren. Ich würde Ihnen jedoch empfehlen, es auf dem Server zu installieren, auf dem die LDAP tatsächlich ausgeführt wird, damit Sie sich leichter daran erinnern können.
quelle
Um ajmitch hier zu zitieren ,
Verwenden Sie einfach
chsh -s which fish
und stellen Sie sicher, dass Sie sich abmelden und wieder anmelden oder Ihren Computer neu starten.Übrigens könnte dies hier ein mögliches Duplikat sein: Wie setze ich Fisch als Standardschale?
quelle
$ chsh -s `which fish` Password: chsh: user 'jaan' does not exist in /etc/passwd