Как выполнить сценарий оболочки с sudo из Java-бэкэнда? - PullRequest
0 голосов
/ 22 мая 2019

Я не могу понять, как выполнить такую ​​команду, как sudo some.sh из бэкенда Java. В sudo нет ничего.

Я попытался с exec () и с builder без удачи (см. Ниже). Если я попробую передать exec ("sudo touch text.txt"); это работает.

 String[] cmdScript = new String[]{"/bin/bash", "/var/backup/dump/replication.sh"};
        Process procScript = Runtime.getRuntime().exec(cmdScript);

Есть идеи, что я могу делать не так?

Спасибо

1 Ответ

0 голосов
/ 22 мая 2019

Я думаю, что это будет:

String[] cmdScript = new String[]{"/bin/bash", "sudo /var/backup/dump/replication.sh"};

или

String[] cmdScript = new String[]{"/bin/bash", "sudo", "/var/backup/dump/replication.sh"};

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

String[] cmdScript = new String[]{"/bin/bash -c", "echo 'password' | sudo -S /var/backup/dump/replication.sh"};

Это не проверено, но должно привести вас на правильный путь.Если нет, похоже, что это было решено здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...