Рейтинг:0

Почему sudo su не работает в моем скрипте?

флаг in

Я хочу изменить владельца, членство в группе и права доступа в сценарии с помощью последовательности команд.

Некоторым из них нужны root-права.

я сначала сделал судо су в терминале, а затем запускал все необходимые команды один раз подряд. Я узнал, что после судо су все определения макросов абв=<...> надо ставить после судо су, потому что кажется, что root не знает о макросах, существующих в другом контексте.

После того, как все мои команды сработали, как и ожидалось, я позвонил история, удалил номера строк и обрамил соответствующую их часть в судо су ... выход.

Я могу вставить эту последовательность команд в терминал, и она работает нормально.

Однако, если я добавлю к нему строку #!/бин/баш и сохранить его как файл и сделать этот исполняемый файл, который не работает:

Мне предлагают ввести пароль, но затем я оказываюсь на уровне командной строки, где приглашение заканчивается на #, что показывает мне, что судо су сработало. Но остальная часть моей последовательности команд не сработала.

Как я могу добиться выполнения других команд?

Будучи новичком в командной строке, я думаю, что еще не понял чего-то важного. Пожалуйста, объясните, как это сделать и почему.

Artur Meinild avatar
флаг vn
Не используйте `sudo` внутри скриптов. Вместо этого запустите весь сценарий от имени пользователя root. Если это cronjob, запустите его из crontab root.
флаг in
Артур, ты предлагаешь поставить `sudo -u ` перед всеми непривилегированными командами и запустить весь скрипт как `sudo xyz.sz`? Однако это противоречит вашему первому совету никогда не использовать sudo в скрипте.
Artur Meinild avatar
флаг vn
Я не сказал никогда, я сказал "не надо". Но один пример, который вы приводите, будет исключением, и в некоторых случаях он может быть жизнеспособным. ;-)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.