how to determine if a shell is running as Administrator?
J. David Boyd
dboyd2@mmm.com
Thu Feb 5 14:18:00 GMT 2015
Corinna Vinschen <corinna-cygwin@cygwin.com> writes:
> On Feb 5 04:43, Andrew Schulman wrote:
>> What's a reliable and efficient way to determine programmatically if the shell
>> that's running has elevated privileges?
>>
>> Or if you prefer, how can I tell if the shell was started with "Run as
>> administrator"?
>
> id -G | grep -qE '\<544\>' && echo admin || echo luser
>
>> 2. Parse the output of groups or id -G. I can't find any reliable way to do
>> this. For example on my host, when I start a shell with "Run as administrator",
>> the new group I get isn't 544 (Administrators). It's 114 (Local account and
>> member of Administrators group). Is that at all portable or reliable?
>
> Huh? There is no such group in Windows. Where does it come from?
> This should always work even with old /etc/group files:
>
> id -G | grep -qE '\<544\>|\<0\>' && echo admin || echo luser
>
>
> Corinna
This doesn't seem to tell me if my shell has been started with 'Run As
Administrator', it just tells me if my user is contained in the Administrator
group.
I can start a cygwin shell, and start a cygwin shell with run as admin, and I
get the same results from the above command.
Dave
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list