This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Change PS1 when run as administrator

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
>  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.


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: signature.asc
Description: PGP signature

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]