2008-09-24 14 views
6

Czy jest możliwe wykonywanie komend linuksowych za pomocą java? Próbuję utworzyć serwlet WWW, aby umożliwić użytkownikom FTP zmianę haseł bez dostępu do logowania ssh. Chciałbym wykonać kolejne polecenia:Komendy Linuksa z Javy

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

Odpowiedz

9

Zapoznaj się z this.

Jednak robienie tego, o czym mówisz, jest poza specyfikacją i nie polecam go. Aby go uruchomić, uruchom serwer aplikacji jako root lub użyj innego mechanizmu, aby dać użytkownikowi serwer aplikacji działający jako uprawnienie do wykonywania tych uprzywilejowanych poleceń. Jedno małe zepsucie gdzieś i jesteś "własnością".

+0

użyj sudo, aby uniknąć uruchamiania jako root. –

5

Zastosowanie:

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

gdzie Polecenie to ciąg poleceń chcesz wykonać.

0

Java RunTime obiekt ma exec metody uruchamiania poleceń w oddzielnym procesie

1

Jeśli powoływać się na te polecenia z Java, upewnij się pakować wielu poleceń do jednego shell- scenariusz. Ułatwi to wywoływanie.