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: [PATCH] base-files-4.0.6: Change prompt if running with admin rights

Daniel Colascione wrote:
On 4/24/11 9:39 AM, Christian Franke wrote:
On 2011-04-01, Christian Franke wrote:
The attached patch for /etc/profile and /etc/bash.bashrc sets a root
prompt ('#' instead of '$' or '%') if the shell runs with admin rights
(local or domain admin group).

Any comment so far? Wrong list ?

I like the idea, but your patch adds two subprocess invocations to the shell startup path. Each one takes ~200ms, and we can't afford to add any more.


Instead of examining the group list, you can use something like

local isadmin=0
[[ -w / ]]&&  isadmin=1

False positive if same user installed Cygwin by running setup.exe with admin rights.

[[...]] does not work with posh and dash. But all shells apparently have a builtin '[' command.


local isadmin=0
[[ -w /cygdrive/c ]]&&  isadmin=1

False positive if /cygdrive is mounted with 'noacl' option.

Of course, that test assumes that only "administrators" can write to the
drive root, and that's an imperfect proxy for administrative rights. You
get the idea though: try to perform the test in pure bash code.

Using a read access test on a registry key with SYSTEM only access might work in most cases:

[ -r /proc/registry/HKEY_LOCAL_MACHINE/SECURITY ] && isadmin=1

Test succeeds if SeBackupPrivilege is enabled which is the case for Cygwin processes if user is in admin group or another group with this privilege.

A test script for all shells is attached. Run with admin rights. Requires cygdrop from cygutils package.

Script produces a false negative only from dash. Not really an issue, as dash is normally not used interactively.


-- Problem reports: FAQ: Documentation: Unsubscribe info:

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