Seite 1 von 1

Feststellen, ob man "root" ist?

Verfasst: 22.02.2010 21:08
von pickelrobert
Wie stelle ich programmtechnisch fest, ob ich "root" bin? Ich dachte da z.B. an:

Code: Alles auswählen

werbinch.s=whoami_()

Re: Feststellen, ob man "root" ist?

Verfasst: 22.02.2010 21:26
von TomS
Wie wär's wenn du versuchst eine Datei zu öffnen ( ReadFile() oder LoadFile() ), auf die man nur als root zugreifen kann?

Re: Feststellen, ob man "root" ist?

Verfasst: 22.02.2010 21:49
von ts-soft

Code: Alles auswählen

Procedure I_Am_Root()
  Protected.s HomeDir = GetHomeDirectory()
  If StringField(HomeDir,  CountString(HomeDir, "/"), "/") = "root"
    ProcedureReturn #True
  EndIf
  ProcedureReturn #False 
EndProcedure

Debug I_Am_Root()
Geht bestimmt auch eleganter :mrgreen:

Gruß
Thomas

Re: Feststellen, ob man "root" ist?

Verfasst: 22.02.2010 23:32
von Marvin

Code: Alles auswählen

If geteuid_()=0
    ;root!
Else
    ;Nicht root!
EndIf
EDIT: geteuid_() ist besser, das hilft auch, wenn das Sticky-Bit gesetzt ist.

Re: Feststellen, ob man "root" ist?

Verfasst: 22.02.2010 23:46
von ts-soft
Marvin hat geschrieben:EDIT: geteuid_() ist besser, das hilft auch, wenn das Sticky-Bit gesetzt ist.
Hab auf die schnelle nichts gefunden um die $UID festzustellen, habs deshalb mal ohne API gemacht :mrgreen:
Ich denke mal, die API ist geeigneter.

Gruß
Thomas

Re: Feststellen, ob man "root" ist?

Verfasst: 23.02.2010 21:50
von pickelrobert
Klappt, danke.