Я пытаюсь запустить некоторые вещи на сервере моей команды и с некоторыми трудностями.Использование perl для запуска более одной системной команды в строке
Для части того, что я использую для написания сценариев, мне нужно, чтобы пользователь переключил пользователя через sudo su APPUSER
, а затем выполнил несколько команд. Однако sudo скорее заблокирован на нашем сервере, и я не могу запустить что-то вроде: sudo su APPUSER -c COMMAND
. Я попросил, чтобы это было исправлено, системные администраторы всегда говорят «нет».
В настоящее время я использую perl для создания сценариев, и мне нужно заглянуть в appuser вместо пользователя разработчика, чтобы запустить около трех команд. Я могу сделать это в командной строке, выполнив каждую команду подряд, но я не знаю, как получить perl для этого.
Как я могу заставить perl выполнить более одной команды в командной строке так, чтобы она не отбрасывала оболочку/состояние после предыдущего выполнения? то есть выполнение нескольких вызовов system
не работает.
Почему бы не поместить команды в сценарий оболочки и использовать Perl для запуска этого? – SheetJS
Почему perl, когда он уже находится в оболочке и использует только 'system' –
Поскольку скрипты, будь то shell или perl, выполняются изначально как пользователь dev. Ни один из них не может успешно попасть в appuser, если не сделать вручную, чего я надеюсь избежать. – Malfist