Почему sudo открывает скрипты с / bin / sh?

333
stav meir

У меня есть скрипт, который требует разрешения sudo и должен запускаться /bin/bashна компьютере с Ubuntu 14.04.

Если я запускаю его, войдя в систему как root (или любой другой пользователь), он открывается с /bin/bashожидаемым, однако, когда я запускаю скрипт, sudoон открывается /bin/shнезависимо от того, под каким пользователем я вошел.

Я проверил, /etc/passwdи я вижу, /bin/bashэто оболочка по умолчанию для root. $SHELLопределяется /bin/bashтакже.

Я не буду единственным, кто использует скрипт, поэтому я не могу полагаться на людей, использующих его sudo -iдля запуска.

Где определяется оболочка sudo? Как я могу это изменить?

0
Вы пытались установить оболочку с помощью #! строка в скрипте? Jesusaur 5 лет назад 1
Добавьте в свой скрипт в качестве первой строки: `#! / Bin / bash` harrymc 5 лет назад 1
Да, я забыл упомянуть, что уже установил оболочку таким образом. Это не помогло. Я отредактирую вопрос stav meir 5 лет назад 0
Я только что проверил дважды, у меня в сценарии было `#! / Bin / bash`, но не в первой строке! Я заранее прокомментировал сценарий, я думаю, старые привычки Python. Я изменил их порядок, и скрипт открывается с bash! Благодарю. Я не могу высказать ваши комментарии: / stav meir 5 лет назад 0
Пожалуйста, не редактируйте ответ на свой вопрос. [su] это сайт вопросов и ответов, и ответы должны быть отделены от вопросов. Вместо этого вы можете [ответить на свой вопрос] (https://superuser.com/help/self-answer). DavidPostill 5 лет назад 0
Хорошо, спасибо. @DavidPostill, не могли бы вы снова открыть мой вопрос, чтобы я мог ответить на него? Я не хочу делать пустое редактирование. stav meir 5 лет назад 0
@stavmeir Готово. DavidPostill 5 лет назад 0

1 ответ на вопрос

1
stav meir

Моя проблема заключалась в том, что я задокументировал сценарий, прежде чем в #!/bin/bashлинии, так что притон был не первой строки в скрипте.