GNU/Linux >> Linux Esercitazione >  >> Linux

C'è un modo per ottenere l'UID dell'utente sulla macchina Linux usando java?

puoi eseguire id comando e leggere il risultato.

ad esempio:

$ id -u jigar

uscita:

1000

puoi eseguire il comando con

try {
    String userName = System.getProperty("user.name");
    String command = "id -u "+userName;
    Process child = Runtime.getRuntime().exec(command);

    // Get the input stream and read from it
    InputStream in = child.getInputStream();
    int c;
    while ((c = in.read()) != -1) {
        process((char)c);
    }
    in.close();
} catch (IOException e) {
}

fonte


In realtà esiste un'API per questo. Non c'è bisogno di chiamare un comando shell o usare JNI, solo

def uid = new com.sun.security.auth.module.UnixSystem().getUid()

Se puoi influenzare il modo in cui viene avviata la Java VM, puoi consegnare l'uid come proprietà utente:

java -Duserid=$(id -u) CoolApp

Nella tua CoolApp, puoi semplicemente recuperare l'ID con:

System.getProperty("userid");

Saluti,

Martino.


Linux
  1. Come eliminare un utilizzo non root con UID 0 in Linux

  2. Ottieni i delta del mouse usando Python! (su Linux)

  3. Controlla se una directory è vuota usando C su Linux

  4. Esiste un modo per ottenere time_t a 64 bit nei programmi a 32 bit in Linux?

  5. Esiste una distribuzione Linux stabile che utilizza btrfs?

Ottieni podman attivo e funzionante su Windows usando Linux

Che cos'è l'UID in Linux, come trovarlo e modificarlo

Crea una macchina virtuale KVM usando l'immagine Qcow2 in Linux

Come ottenere l'elenco degli account utente MySQL in Linux

C'è un modo per ottenere emoji colorati in qualsiasi emulatore di terminale su Linux?

C'è un modo per ottenere i rapporti Cache Hit/Miss per i dispositivi a blocchi in Linux?