Überprüfen ob Superuser

Status
Nicht offen für weitere Antworten.

d53r3

Mitglied
Grüße,

ich bräuchte kurz Hilfe:

Ich möchte am Anfang meines Programmes überprüfen, ob es mit Superuserrechten ausgeführt wurde. Das ist notwendig, da sonst einige Vorgänge innerhalb des Programms nicht richtig ausgeführt werden können.

Google und die Boardsuche haben leider nichts Brauchbares ausgespuckt.

Vielen Dank schon mal im voraus.
 
> da sonst einige Vorgänge innerhalb des Programms nicht richtig ausgeführt werden können

testweise ausführen, bei Fehler weißt du es 😉
 
SlaterB hat gesagt.:
> da sonst einige Vorgänge innerhalb des Programms nicht richtig ausgeführt werden können

testweise ausführen, bei Fehler weißt du es 😉

Jo, darauf bin ich auch schon gekommen. Kommt mir aber eher "unprofessionell" vor, besonders da ich dieses
Programm nach Abgabe nicht mehr selber bedienen werde, sondern jemand anders bzw. später auch User, die keine
Ahnung von nix haben.

Was ich genau bräuchte wäre eine "einfache" Abfrage zu beginn des Programms, wenn es so etwas nicht gibt, werde ich wohl oder übel wie bisher vorgehen müssen.

mfg
 
Du kannst den Anmeldenamen aus den System.getProperties() auslesen. Lautet er "Administrator" oder "root" weißt Du schon was.

Wenn es ein User mit adminrechten ist, findest Du es nur heraus, indem Du eine Testaktion durchführst - also z.B. eine Datei erzeugen, die nur der Admin erzeugen kann. Dann nagelst Du Dich aber ggf. auf die Plattform fest (wenn Du z.B. nach C:\\WINDOWS schreiben willst...)

Was anderes fällt mir da jetzt auch nicht ein...
 
Das könnte man wirklich so machen. System.getProperties() gibt mehr Informationen zurück wenn man Superuserrechte hat. Man könnte beispielsweise Checksummen berechnen und dann vergleichen.

Aber gibts da keine einfacheren Möglichkeiten?

Vielleicht hilfts zu wissen, dass es ein Ubuntu System ist und das Programm mit sudo aufgerufen werden muss, da ich sonst nicht genug Rechte hab, um die Enumerierung von USB Geräten korrekt durchzuführen. Einstellen der Devnode beim mounten und andere Sachen in dieser Richtung haben nicht weitergeholfen.
 
Eine allgemeine Java-Lösung kann es ja eigentlich nicht lösen, da ja solche "Superuser" nicht unbedingt auf jedem java-fähigem System gleich realisiert sind.

Unter nem Linux-System könntest du z.B. mal /etc/shadow versuchen zu öffnen. Das sollte auf Systemen die nicht völlig kaputt geconft sind sicheren Aufschluss geben.
 
vor allem auf linux systemen ist es das beste einfach den erfolg der entsprechenden methoden zu testen. was nützt es mir wenn ich "root" bin, aber trotzdem dank grsecurity/selinux/rbac keine rechte für eine bestimmte operation habe die der benutzer/gruppe "usb" kann?
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben