Forum: FreePascal
by Valle,
17. Mär 2009
Ja, dann mach die Klammern und das zweite "=" eben weg. :stupid: Der etwas eigenartige Pascal-Syntax ist mir sowieso etwas fremd. Aber zumindest so rein vom Vorgehen her, sollte meine Funktion etwas besser sein als deine. :mrgreen:
uses BaseUnix;
// ...
function CheckRoot: Boolean;
begin
Result := FpGeteuid = 0;
end;
Forum: FreePascal
by Valle,
17. Mär 2009
Ui. :shock:
Wie wäre's damit?
if geteuid() == 0 then
Mit freundlichen Grüßen,
Valle
Forum: FreePascal
by Valle,
17. Mär 2009
Users-Datei? Meinst du /etc/passwd? Auch davon würde ich dir abraten! Das funktioniert nicht immer, zum Beispiel bei mir. Es gibt Umgebungen, in denen die System-Benutzer in einer Datenbank oder zum Beispiel auf einem LDAP-Server gespeichert sind. In /etc/passwd wirst du dann nicht viel finden. Benutze also am besten die System-Calls! ;-)
Ja, du kannst Konsolenbefehle über den Code...
Forum: FreePascal
by Valle,
17. Mär 2009
Das ist aber sehr dreckig! Zumal ls -l auch nicht zwingend funktioniert. Wenn ich einem Ordner die Rechte "111" gebe (Nur Execution Bit), dann gib ls folgende Fehlermeldung aus.
ls: cannot open directory .: Permission denied
Also wofür gibt es Funktionen dafür? ;-)
Achja, eines wäre noch. Der Eigentümer einer Datei ist immer nur seine UID. Das heißt, du solltest dich nicht wundern, wenn...