From: Christian Franke <Christian.Franke@t-online.de>
To: cygwin@cygwin.com
Subject: [PATCH] base-files-4.0.6: Change prompt if running with admin rights
Date: Fri, 01 Apr 2011 21:29:00 -0000 [thread overview]
Message-ID: <4D964392.6080809@t-online.de> (raw)
[-- Attachment #1: Type: text/plain, Size: 296 bytes --]
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).
Does not rely on a specific admin SID -> gid mapping in /etc/group.
Tested with bash, zsh, mksh, posh, dash.
Christian
[-- Attachment #2: base-files-4.0-6-rootprompt.patch --]
[-- Type: text/x-diff, Size: 2160 bytes --]
diff -rup base-files-4.0-6.orig/etc/defaults/etc/bash.bashrc base-files-4.0-6/etc/defaults/etc/bash.bashrc
--- base-files-4.0-6.orig/etc/defaults/etc/bash.bashrc 2011-03-17 21:30:38.000000000 +0100
+++ base-files-4.0-6/etc/defaults/etc/bash.bashrc 2011-03-31 15:38:12.000000000 +0200
@@ -16,7 +16,7 @@
[[ "$-" != *i* ]] && return
# Set a default prompt of: user@host and current_directory
-PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ '
+PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n'"${PS1a:-\\\$ }"
# Uncomment to use the terminal colours set in DIR_COLORS
# eval "$(dircolors -b /etc/DIR_COLORS)"
diff -rup base-files-4.0-6.orig/etc/defaults/etc/profile base-files-4.0-6/etc/defaults/etc/profile
--- base-files-4.0-6.orig/etc/defaults/etc/profile 2011-03-18 17:59:18.000000000 +0100
+++ base-files-4.0-6/etc/defaults/etc/profile 2011-03-31 23:06:38.953125000 +0200
@@ -85,6 +85,16 @@ else
cd "${HOME}" || echo "WARNING: Failed attempt to cd into ${HOME}!"
fi
+# Set PS1a if user is in local or domain admin group
+unset PS1a
+grps="$(id -G 2>/dev/null)"
+for g in $(sed -n 's,^[^:]*:S-1-5\(-32-544\|-21-[^:]*-512\):\([0-9]*\):.*$,\2,p' /etc/group 2>/dev/null); do
+ case " $grps " in
+ *\ $g\ *) PS1a="# "; break;;
+ esac
+done
+unset g grps
+
# Shell dependent settings
profile_d ()
{
@@ -104,19 +114,20 @@ if [ ! "x${BASH_VERSION}" = "x" ]; then
elif [ ! "x${KSH_VERSION}" = "x" ]; then
typeset -l HOSTNAME=$(/usr/bin/hostname)
profile_d sh
- PS1=$(print '\033]0;${PWD}\n\033[32m${USER}@${HOSTNAME} \033[33m${PWD/${HOME}/~}\033[0m\n$ ')
+ PS1=$(print '\033]0;${PWD}\n\033[32m${USER}@${HOSTNAME} \033[33m${PWD/${HOME}/~}\033[0m\n'"${PS1a:-\$ }")
elif [ ! "x${ZSH_VERSION}" = "x" ]; then
HOSTNAME=$(/usr/bin/hostname)
profile_d zsh
- PS1='(%n@%m)[%h] %~ %% '
+ PS1='(%n@%m)[%h] %~ '"${PS1a:-%% }"
elif [ ! "x${POSH_VERSION}" = "x" ]; then
HOSTNAME=$(/usr/bin/hostname)
- PS1="$ "
+ PS1="${PS1a:-\$ }"
else
HOSTNAME=$(/usr/bin/hostname)
profile_d sh
- PS1="$ "
+ PS1="${PS1a:-\$ }"
fi
+unset PS1a
export PATH MANPATH INFOPATH USER TMP TEMP PRINTER HOSTNAME PS1
[-- Attachment #3: Type: text/plain, Size: 218 bytes --]
--
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
next reply other threads:[~2011-04-01 21:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-01 21:29 Christian Franke [this message]
2011-04-25 11:32 ` Christian Franke
2011-04-25 14:08 ` Daniel Colascione
2011-04-27 6:41 ` Christian Franke
2011-04-27 7:32 ` Christian Franke
2011-04-26 2:52 ` David Sastre
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=4D964392.6080809@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).