public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Christian Franke <Christian.Franke@t-online.de>
To: cygwin@cygwin.com
Subject: Re: Cygwin console: Different default background color when terminal runs as Admin?
Date: Fri, 18 Aug 2023 14:55:46 +0200	[thread overview]
Message-ID: <0e260ffb-f29f-7a19-6bc9-cfd616484eec@t-online.de> (raw)
In-Reply-To: <ZN9an+NaACvTjlc/@calimero.vinschen.de>

Corinna Vinschen via Cygwin wrote:
> On Aug 18 11:51, Martin Wege via Cygwin wrote:
>> On Fri, Aug 18, 2023 at 7:27 AM Jonathon Merz via Cygwin
>> <cygwin@cygwin.com> wrote:
>>> On Thu, Aug 17, 2023 at 7:13 PM Martin Wege via Cygwin <cygwin@cygwin.com>
>>> wrote:
>>>
>>>> Just an idea: Could the default background color of the Cygwin console
>>>> be changed from black to grey (or RED) if the terminal has been
>>>> started with Administrator rights?
>>>>
>>> Assuming that:
>>> 1. The Administrators group is called "Administrators"
>>> 2. There aren't any non-administrative groups with "Administrators" in the
>>> name
>>> 3. You're using mintty for your terminal
>>>
>>> You can run the following in bash or zsh with the desired RGB values:
>>>
>>> if [[ `id -Gn` == *Administrators* ]]
>>> then
>>>      echo -ne "\e]11;#FFBBEE\a";
>>> fi
>>>
>> Looking at the output of /usr/bin/id -a was my first guess too. But
>> this fails quickly because the names are localized. Seriously MS runs
>> the Windows group names through the l10n wringer!! So what works on
>> Windows for Germany will surely fail for Windows for Japan. Thus I am
>> looking for a more portable solution.
>>
>> Maybe the numeric group ids are more 'portable' across the Windows
>> versions for different countries?
> Admin group is always Windows SID 1-5-32-544 and gid 544 in Cygwin,
> unless somebody overloads the gid values via an /etc/group file.
>
> If you want to be really sure, you have to check every numeric gid
> returned by `id -G' if it resolves to SID 1-5-32-544.  You can do
> this with the getent(1) tool.

Fortunately getent allows multiple keys, so this works:

case "$(getent group $(id -G))" in
   *:S-1-5-32-544:*) echo admin ;;
esac

Unfortunately this may be is slow in domains due to unneeded AD 
requests. Unlike mkgroup, getent output cannot be restricted to local 
groups (and the '-s SERVICE' option is apparently a no-op).

-- 
Regards,
Christian


      reply	other threads:[~2023-08-18 12:55 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-18  2:11 Martin Wege
2023-08-18  5:26 ` Jonathon Merz
2023-08-18  8:11   ` Christian Franke
2023-08-18 10:44     ` Thomas Wolff
2023-08-18  9:51   ` Martin Wege
2023-08-18 11:48     ` Corinna Vinschen
2023-08-18 12:55       ` Christian Franke [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0e260ffb-f29f-7a19-6bc9-cfd616484eec@t-online.de \
    --to=christian.franke@t-online.de \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).