J'ai essayé d'accéder à un système nouvellement installé via Emacs' Tramp comme je le fais avec tous mes autres systèmes :
C-x C-f /ssh:server|sudo:root@server:/etc/network/interfaces
Cette commande a expiré. Après quelques recherches, j'ai découvert que sudo
y dash
semblent incompatibles, bien que mon sudoers
est assez simple :
# grep -P -v '^(#.*)?$' /etc/sudoers
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
root ALL=(ALL:ALL) ALL
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
Lorsque j'utilise un Shell normal comme Bash, la commande suivante fonctionne correctement :
env SHELL=/bin/bash sudo -u root -s -H
Mais lorsque j'utilise le tiret, auquel /bin/sh est lié, la commande suivante est exécutée
env SHELL=/bin/sh sudo -u root -s -H
génère une boucle sans fin
/bin/sh: 0: Bad substitution
/bin/sh: 0: Bad substitution
/bin/sh: 0: Bad substitution
/bin/sh: 0: Bad substitution
/bin/sh: 0: Bad substitution
...
qui ne peut être arrêtée que par kill -9
.
Je souhaite faire apt-get purge dash
mais le système d'exploitation insiste pour le conserver.
Comment résoudre ce problème ?