Change PS1 when run as administrator
Thomas Wolff
towo@towo.net
Tue Mar 15 21:34:00 GMT 2016
Am 15.03.2016 um 18:08 schrieb Corinna Vinschen:
> On Mar 15 12:33, Andrew Schulman wrote:
>>> I just came up with this recipe to change the default PS1 value to use red for the user@host part of the prompt and to change the $ character to a #:
>>>
>>> if id | grep -qi 'member of administrators group'
>>> then
>>> export PS1=$(echo "$PS1" | sed -e 's_32_31_' -e 's_\\\$_#_')
>>> fi
>>>
>>> IÂm not certain the string match on the output of id(1) works everywhere. Is there a better way to check for admin privileges under Cygwin? You canÂt check for UID or EUID == 0, for example, as youÂd do on a true POSIX system.
>> Ha! Yes, there is: see
>> https://cygwin.com/ml/cygwin/2015-02/msg00057.html. The magic test is
>>
>> id -G | grep -qE '\<(544|0)\>'
>>
>> where 544 is the Administrators group, and 0 is the root group in case the
>> old root group entry is present in /etc/group.
>>
>> For example:
>>
>> id -G | grep -qE '\<(544|0)\>' && echo admin || echo user
> Thou shalt not use the test for gid 0 anymore. If it works, remove the
> entry from /etc/group, or better, remove /etc/group entirely. This entry
> will render wrong and unwanted results when you least expect them. Such
> cruft always does.
So id -G | grep -q '\<544\>' I suppose. Is there also a universal
replacement for
elif id | grep -e "gid=.*(Power Users)" > /dev/null
?
Thomas
--
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