Linux команды из Java - PullRequest
       21

Linux команды из Java

6 голосов
/ 24 сентября 2008

Возможно ли выполнить команды Linux с Java? Я пытаюсь создать веб-сервлет, позволяющий пользователям ftp изменять свои пароли без доступа по ssh. Я хотел бы выполнить следующие команды:

# adduser -s /sbin/nologin clientA -d /home/mainclient/clientA
# passwd clientA
# cd /home/mainclient; chgrp -R mainclient clientA
# cd /home/mainclient/clientA; chmod 770 .

Ответы [ 5 ]

9 голосов
/ 24 сентября 2008

Проверить это .

Однако делать то, о чем вы говорите, далеко за пределами спецификации, и я бы не рекомендовал это делать. Чтобы заставить его работать, вы должны либо запустить свой сервер приложений от имени пользователя root, либо использовать какой-то другой механизм, чтобы дать пользователю, на котором запущен сервер приложений, разрешение на выполнение этих привилегированных команд. Одна маленькая ошибка где-то, и вы "в собственности".

5 голосов
/ 24 сентября 2008

Использование:

Runtime.getRuntim().exec("Command");

где Command - это строка команды, которую вы хотите выполнить.

1 голос
/ 24 сентября 2008

Если вы вызываете эти команды из Java, убедитесь, что упаковали несколько команд в один shell-скрипт. Это сделает вызов намного проще.

0 голосов
/ 24 сентября 2008

взгляните на java.lang.Runtime

0 голосов
/ 24 сентября 2008

Объект java RunTime имеет методы exec для запуска команд в отдельном процессе

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