J'ai appris une nouvelle commande, du moins je pensais, car cette commande chsh
:, ne se comporte pas comme décrit.
Il a été décrit pour fonctionner comme ceci:
cat /etc/shells
pour savoir quels coques sont installées, vous pouvez donc choisir parmi eux.- faire
echo $SHELL
pour savoir quel shell vous utilisez. - choisissez l'une des coquilles et tapez
chsh -s /path/to/shell
- entrez le mot de passe et vérifiez avec
echo $SHELL
, que vous êtes dans un nouveau shell.
Je l'ai fait et je n'ai reçu aucun message d'erreur lors de la saisie du mot de passe, mais j'étais toujours dans le même shell.
% echo $SHELL
/bin/bash
% cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
% chsh -s /bin/sh
Password:
% echo $SHELL
/bin/bash
shell
ubuntu
command-line
sharkant
la source
la source
Réponses:
Déconnectez-vous et reconnectez-vous.
La
chsh
commande mettra à jour le/etc/passwd
fichier, mais elle ne modifie pas le shell actuel ni la valeur de la$SHELL
variable dans le shell actuel (elle n'a aucun moyen de le faire). C'est la raison pour laquelle vous devez vous reconnecter; vous devez démarrer une nouvelle session de connexion pour qu'une modification prenne effet.la source
/etc/passwd
ne sont pas lues jusqu'à votre prochaine connexion. Vous devrez vous déconnecter complètement et vous reconnecter pour que la modification prenne effet. Si vous échouez, le redémarrage de la machine fonctionnera également.L' utilisation de la commande utilitaire usermod a fonctionné dans mon cas. Fonctionnant sur Ubuntu 18.04.
grep nameofuser /etc/passwd
sudo usermod --shell /bin/bash nameofuser
grep nameofuser /etc/passwd
la source