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

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

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

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

# grep -P -v '^(#.*)? 

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

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

Но когда я использую тире, с которым связан / 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, но ОС настаивает на его сохранении.

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

/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

Но когда я использую тире, с которым связан / 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, но ОС настаивает на его сохранении.

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

2
задан 24 September 2019 в 18:16

1 ответ

Я сделал это:

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

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

0
ответ дан 23 October 2019 в 10:39

Другие вопросы по тегам:

Похожие вопросы: