This is the mail archive of the
mailing list for the Cygwin project.
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:
Any comment so far? Wrong list ?
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).
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
Instead of examining the group list, you can use something like
[[ -w / ]]&& isadmin=1
False positive if same user installed Cygwin by running setup.exe with
[[...]] does not work with posh and dash. But all shells apparently have
a builtin '[' command.
[[ -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
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: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple