sudo с тире дает плохую замену

sudo с тире дает плохую замену

Я попытался получить доступ к недавно установленной системе через Tramp в Emacs так же, как я делаю это со всеми остальными своими системами:

C-x C-f /ssh:server|sudo:root@server:/etc/network/interfaces

Эта команда истекла по времени. После некоторых исследований я выяснил, что sudoи, dashпохоже, несовместимы, хотя у меня sudoersвсе довольно просто:

# 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

Когда я использую обычную оболочку, такую ​​как Bash, следующая команда работает нормально:

env SHELL=/bin/bash sudo -u root -s -H

Но когда я использую dash, с которым связан /bin/sh, следующая команда

env SHELL=/bin/sh sudo -u root -s -H

создает бесконечный цикл

/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
...

который может быть остановлен только kill -9.

Я хотел бы это сделать apt-get purge dash, но ОС настаивает на его сохранении.

Как это исправить?

решение1

Я сделал это:

cd /bin
rm sh
ln -s bash sh
apt-get purge dash
apt-mark hold dash

Машина все еще загружается.

Связанный контент