У меня есть этот код, чтобы выполнить команду с и без использования sudo
опциикоманда Sudo с помощью Java не работает
String sudoScript = "sudo -u root -S ls /";
String script = "ls /";
try {
System.out.println("===================================");
System.out.println("command="+sudoScript);
Process p1 = Runtime.getRuntime().exec(sudoScript);
System.out.println("p2.waitFor()="+p1.waitFor());
BufferedReader stdInput1 = new BufferedReader(new InputStreamReader(p1.getInputStream()));
while ((sudoScript = stdInput1.readLine()) != null) {
System.out.println(script);
}
System.out.println("===================================");
System.out.println("command="+script);
Process p2 = Runtime.getRuntime().exec(script);
System.out.println("p2.waitFor()="+p2.waitFor());
BufferedReader stdInput2 = new BufferedReader(new InputStreamReader(p2.getInputStream()));
while ((script = stdInput2.readLine()) != null) {
System.out.println(script);
}
} catch (Exception e) {
e.printStackTrace();
}
И это своего рода выход я Get-
===================================
command=sudo -u root -S ls/
p2.waitFor()=1
===================================
command=ls/
p2.waitFor()=0
bin
boot
cgroup
data
dev
etc
home
home.save
lib
lost+found
media
mnt
null
opt
opt.save
proc
root
sbin
selinux
srv
sys
tmp
usr
var
Если вы наблюдаете , Я не могу получить тот же результат, используя команду sudo
. Что-то я пропустил здесь?
ли вы предоставить разрешения на использование Sudo для пользователя, запустившего сценарий? – fedorqui
да я. Он отлично работает, когда я выполняю его в терминале в качестве команды. – AlwaysALearner
Но спрашивает ли он пароль? Вы можете использовать выражение 'NOPASSWD:' в sudoers, чтобы избежать этого. – fedorqui