Des idées sur la façon de changer la coquille en poisson?
$ 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
Questions connexes: l' utilisateur n'existe pas dans / etc / passwd lors de la tentative de modification du shell par défaut Il semble qu'il utilise 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
J'ai donc installé le paquet approprié 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
command-line
etc
fish
chsh
Abhishek Bhatia
la source
la source
/etc/shells
deschsh
outils similaires pour l'accepter.Réponses:
Voici un indice:
/usr/bin/chsh.ldap: "/usr/bin/fish" is an invalid shell
. Il semble que vous devez ajouter/usr/bin/fish
à/etc/shells
.la source
chsh.ldap -s /usr/bin/zsh myusername
me donne unSegmentation fault
.Attendez, c'est un utilisateur LDAP, il y a un paramètre dans LDAP qui vous permet de changer le shell par défaut de l'utilisateur en eux.
Vous pouvez installer ldap-account-manager qui vous donne un webfrontent pour la configuration ldap.
Cela peut être fait sur n'importe quel serveur sur lequel vous souhaitez gérer la configuration. Puisque vous devrez de toute façon configurer le serveur dans les fichiers de configuration. Mais je vous recommande de l'installer sur le serveur sur lequel le ldap fonctionne réellement, juste pour que vous vous en souveniez plus facilement.
la source
Pour citer ajmitch ici ,
Utilisez simplement
chsh -s which fish
Et assurez-vous de vous déconnecter et de vous reconnecter ou de redémarrer votre ordinateur.Soit dit en passant, cela pourrait être un double possible ici: Comment puis-je définir le poisson comme shell par défaut?
la source
$ chsh -s `which fish` Password: chsh: user 'jaan' does not exist in /etc/passwd