Я ищу, чтобы загрузить и выгрузить модуль ядра Linux из моей Java-программы.
Первоначально я пытался сделать это, используя ProcessBuilder для запуска команд, однако это не удалось, поскольку у программы нет прав root. Запуск моей программы от имени root также приводит к той же проблеме, поскольку это другой процесс, для которого требуется доступ с правами root.
Итак, как мне получить root-доступ в моей программе, чтобы можно было запускать insmod и rmmod. Вот как это выглядит до сих пор.
String loader (String s, int i) throws BadLoaderIntException{
if(i == 0){
s = "insmod " + s;
}else if(i == 1){
s = "rmmod " + s;
}else{
throw new BadLoaderIntException();
}
ProcessBuilder pb = new ProcessBuilder("bash", "-c", s);
pb.redirectErrorStream(true); //Outputs to stderr in-case of Error
Process shell = null;
try {
shell = pb.start();
} catch (IOException e) {
e.printStackTrace();
}
InputStream shellIn = shell.getInputStream();
...