Так как у Вас есть доступ суперпользователя, можно просто измениться /bin/sh
. Конечно, Вы будете влиять на что-либо, что хочет использовать оболочку по умолчанию (например, сценарии крона), так попытайтесь восстановить ее как можно скорее.
Во-первых, создайте обертку. Создайте в своем корневом каталоге названный файл mysh
с этим содержанием:
#!/bin/dash
exec /bin/dash -x "$@"
Сделайте это исполняемым файлом.
$ chmod +x ~/mysh
Затем изменение /bin/sh
. Во-первых, удостоверьтесь, что отметили, где это указывает
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 9 Jan 12 17:42 /bin/sh -> /bin/dash
Затем опрометчиво измените его. (Предупреждение: будет часть микросекунды, когда Ваша система не будет иметь /bin/sh
.)
$ sudo ln -sf ~/mysh /bin/sh
Как только Вы заканчиваете свою вещь, восстанавливаете ее.
$ sudo ln -sf /bin/dash /bin/sh
Удачи!
К сожалению, сценарий имеет подлинный путь к файлу, трудно кодированный, полагаясь на расширение оболочки корневого каталога:
self.auth_path = os.path.expanduser('~/.cloudprintauth')
Моя рекомендация состоит в том, что Вы исправляете файл путем изменения той строки на полный путь:
self.auth_path = os.path.expanduser('/root/.cloudprintauth')
Надо надеяться, это добьется цели.
Вот ряд пакетов для Debian, который сделает это для Вас.
https://github.com/davesteele/cloudprint-debian
Установка и выполненное "обслуживание cloudprintd входят в систему" как корень.