Dear
I need to detect if the program is executed as root privileges on Linux system.
Did somebody had developped a such function ??
Best regards.

Mailing lists / fpc-pascal / 2006-10
6 messages · 4 people · –
Reply by email Subscribe to this list Your subscription
Read-only archive. Use j and k to move between messages.
Dear
I need to detect if the program is executed as root privileges on Linux system.
Did somebody had developped a such function ??
Best regards.
Well you can try GetEnv('USER') = 'root'; or GetEnv('UID') = '0'; but there may be better ways to check this.
Andrew
The better way would be to use the geteuid function in the libc unit, because the environment variables may not be set (such as if they were explictly unset or if the program is run from cron or the system startup scripts).
See the getuid/geteuid man page for particulars. And no, I am not saying "RTFMP" spitefully. :) :)
Best regards,
Pete C.
It would be even better to use FpGetEUid function from the BaseUnix unit. See [http://www.freepascal.org/docs-html/rtl/baseunix/fpgeteuid.html].
Michalis
DOH! Thanks for reminding me, Michalis. I always forget about seeing if a function is already in the RTL when doing things that I know are standard C library functions. Force of habit is my (bad) excuse. :)
Best regards,
Pete C.
Many thanks i found the function GetEUID i'll try it
http://www.cs.uwc.ac.za/~firstyear/manuals/doc/units/unitsse36.html#x53-41900012.3