Sergio del Amo
Sergio del Amo

Reputation: 78096

Linux commands from Java

Is it possbile to execute linux commands with java? I am trying to create a web servlet to allow ftp users to change their passwords without ssh login access. I would like to execute the next commands:

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

Upvotes: 6

Views: 12000

Answers (5)

Josh Moore
Josh Moore

Reputation: 13548

Use:

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

where Command is the command string you want to execute.

Upvotes: 5

Chris
Chris

Reputation: 240

The java RunTime object has exec methods to run commands in a separate process

Upvotes: 0

Craig Day
Craig Day

Reputation: 2535

Check out this.

However, doing what you are talking about is way outside spec, and I wouldnt reccommend it. To get it to work you are going to either run your app server as root, or use some other mechanism to give the user the app server is running as permission to execute these privileged commands. One small screw-up somewhere and you are "owned".

Upvotes: 9

Vilmantas Baranauskas
Vilmantas Baranauskas

Reputation: 6726

If you invoke those commands from Java, make sure to pack multiple commands to a single shell-script. This will make invocation much easier.

Upvotes: 1

Andreas Kraft
Andreas Kraft

Reputation: 3843

have a look at java.lang.Runtime

Upvotes: 0

Related Questions