Hi Otto, On 5/27/20 9:06 PM, Otto Kekäläinen wrote: > Do we have Debian devs here who have pimped their shell heavily with custom > prompts, colors, command line fonts, shell window title hacks, perhaps > using zsh etc? Have you written blogs about you experiences, can you share > some good reads (with screenshots) of what you have done? I'd like to share my solution to using my zsh environment/customization while switching to root but without polluting root's configuration (or any other user for that matter). I have a function to call a sudo that runs a zsh shell (ignoring root login shell) configured to use my config files instead of root: s () { sudo -u "${1:-root}" -H "ZDOTDIR=${HOME}" -s /bin/zsh } Additionally to that, I have a section in my .zshrc that detect being called as another user and setup aliases for my most used commands to be called with rc files from my user: # We got call as another user, let's setup our env if [ -n "${ZDOTDIR}" ]; then alias vim="vim -u ${ZDOTDIR}/.vimrc" alias vimdiff="vimdiff -u ${ZDOTDIR}/.vimrc" alias git="HOME=${ZDOTDIR} git" alias htop="HTOPRC=${ZDOTDIR}/.config/htop/htoprc htop" alias t="tmux a || tmux -f <(cat ${ZDOTDIR}/.tmux.conf; echo set -g default-shell /bin/zsh)" if [ -f "${ZDOTDIR}/.ssh/config" ]; then alias ssh="ssh -F ${ZDOTDIR}/.ssh/config" alias rsync="rsync -e \"ssh -F ${ZDOTDIR}/.ssh/config\"" fi export SSH_AUTH_SOCK="$(grep -z SSH_AUTH_SOCK /proc/$(ps -p ${PPID} --format=ppid --no-headers)/environ -a 2> /dev/null| cut -d = -f 2)" export EDITOR="vim -u ${ZDOTDIR}/.vimrc" [ -f "${ZDOTDIR}/.identity" ] && source "${ZDOTDIR}/.identity" export GNUPGHOME="${ZDOTDIR}/.gnupg" fi In practice, I can `s` or `s postgres` to switch to root or postgres user continuing to use my config, without polluting user's config. Obviously, unix permisson apply and restrict what you can read/do when switching to another user beside root. -- Baptiste BEAUPLAT - lyknode
Attachment:
signature.asc
Description: OpenPGP digital signature