[fpc-pascal] [SYSTEM]: How detecting if run as root ?

Michalis Kamburelis michalis at camelot.homedns.org
Thu Oct 12 03:44:30 CEST 2006

Pete Cervasio wrote:
> On Wednesday 11 October 2006 19:37, Andrew Haines wrote:
>>> 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.
> 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.  :) :)

It would be even better to use FpGetEUid function from the BaseUnix
unit. See [http://www.freepascal.org/docs-html/rtl/baseunix/fpgeteuid.html].


More information about the fpc-pascal mailing list