root-rättigheter via java-applikation

Här diskuteras programmering och utveckling
banarne
Inlägg: 9
Blev medlem: 13 aug 2007, 16:29

root-rättigheter via java-applikation

Inlägg av banarne »

Hej!

Jag vill skapa en ny fil i en mapp som kräver att man har root-rättigheter.
Och detta vill jag göra i min java-applikation, finns det någon möjlighet att få root-rättigheter via java-applikationen?
Det är viktigt att det sker via java-applikationen då det är den enda applikationen som man ska komma åt vid det tillfället.
Jag använder Ubuntu 7.04.

tack på förhand
Användarvisningsbild
DrMegahertz
Inlägg: 296
Blev medlem: 06 maj 2006, 14:37
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Södra Dalarna

SV: root-rättigheter via java-applikation

Inlägg av DrMegahertz »

Om du använder setuid på filen så tvingar du den att köras med ett speciellt uid, men det ska nog finnas en snyggare lösning..
BildAre you shpongled? Bild
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: root-rättigheter via java-applikation

Inlägg av Lars »

Utan att alls veta vad det är för program så skulle jag vilja hävda att det är felkonstruerat om det kräver root-rättigheter enbart för att skapa en katalog ;)

Jag vet inte om setuid fungerar på Java-program, men det är en farlig metod som helst ska undvikas. Kan du inte skapa katalogen manuellt istället? Eller lägga den i användarens hemkatalog?
banarne
Inlägg: 9
Blev medlem: 13 aug 2007, 16:29

SV: root-rättigheter via java-applikation

Inlägg av banarne »

Jag vill inte skapa en katalog utan jag vill skapa en fil i mappen /usr/lib/jvm/.... som kräver root-rättigheter.
Och det via min java-applikation.
Det är en propertities-fil för usb som jag skulle vilja skapa via min applikation.
banarne
Inlägg: 9
Blev medlem: 13 aug 2007, 16:29

SV: root-rättigheter via java-applikation

Inlägg av banarne »

hehe nu e jag jobbig.

För att förtydliga för Lars så är det jag jag själv som programmerar applikationen som ska kunna skapa en properties fil innan den ska kommunicera med USB.
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: root-rättigheter via java-applikation

Inlägg av Lars »

Jo, men varför ska applikationen in och mecka i systemkataloger för? Det är något som man normalt gör när programmet installeras på datorn, inte varje gång programmet körs.
Användarvisningsbild
gasol
Inlägg: 405
Blev medlem: 27 jul 2007, 14:57
Kontakt:

SV: root-rättigheter via java-applikation

Inlägg av gasol »

Du kan ju skapa en deamon som körs med nån bra uid som man sedan kan kommunicera med via nån IPC metod... så kommer klient applikationen köras som användaren och deamon processen får göra "de farliga" sakerna. Sedan kan ju deamon processen har en lista på uid's som får kommunicera med den...
The Black Mountain Scorpion Hoedown Bluegrass Experience Gang
From Left to Right: Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle.
banarne
Inlägg: 9
Blev medlem: 13 aug 2007, 16:29

SV: root-rättigheter via java-applikation

Inlägg av banarne »

Jo det e så att jag har placerat properties-filen i mappen som den tydligen ska ligga i om usb-kommunikationen ska funka, men det gör den inte ändå.
Då har jag läst att det kan hjälpa om man implementerar kommandona i properties filen till applikationen och startar metoden som skapar en egen properties-fil så är man garanterad att den har hamnat på rätt ställe.
Jag är verkligen beroende av det här då jag ser det som en sista möjlighet att få min usb-kommunikation att fungera. Jag använder för övrigt javax.usb som använder sig av denna properties-fil som jag vill få att funger.

skulle även kanske behöva denna funktion för att skriva över properties-filen senare via min java-applikation.
hoppas

skalat av lite av innehållet i properties-filen för att att inte ta för mycket plats i forumet.


import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public final class PrinterInit {
   
    public static void printerInit(){
        String archivoConf =
            System.getProperty("java.home") + File.separator + "lib" +
            File.separator + "javax.usb.properties";
       
        try {
            BufferedWriter out = new BufferedWriter(new FileWriter(archivoConf));
           
            out.write(
           
                            .....
            "javax.usb.services = com.ibm.jusb.os.linux.LinuxUsbServices"+ "\n" +

           

            "# These properties enable queueing for different pipe types.  If the operating"+ "\n" +
            "# system does not support queueing for a particular pipe type (or at all),"+ "\n" +
            "# enable queueing here.  This queueing is most likely much slower than OS-level"+ "\n" +
            "# queueing, so if the OS supports queueing, these should not be enabled."+ "\n" +
            "com.ibm.jusb.UsbPipeImp.queueSubmissions.control = true"+ "\n" +
                          ..................
           
            out.close();
        } catch (IOException e) {
            System.err.println("properties:" + "javax.usb.properties");
            System.err.println("arch:" + archivoConf);
        }

    }
}
Skriv svar

Återgå till "Programmering och webbdesign"