[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:
>> TOUZEAU DAVID 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].
Michalis
More information about the fpc-pascal
mailing list