Можно ли изменить профиль терминала при переключении пользователя на тот же терминал?
На самом деле моя цель - изменить терминал на профиль, который указывает мне, что это терминал с правами root и что мне лучше быть очень осторожным. Конечно, я всегда очень осторожен с root, и чтобы еще больше улучшить его, я хочу изменить профиль терминала, чтобы он ясно показал мне, что я в настоящее время использую терминал с привилегиями root.
Итак, для ясности: я не хочу делать ярлык для открытия терминала bash с определенным профилем, я думаю о некоторых изменениях в .bashrc, который обнаруживает изменение пользователя и может переключиться на профиль.
Возможно ли это, и если да, то как? ;)
Вам просто нужно отредактировать файл .bashrc
для пользователя root
и добавить туда все, что вам нужно, чтобы иметь другой профиль.
Например, обычно установить PS1
в .bashrc
для предоставления другого приглашения (заканчивающегося #
вместо $
), чтобы пользователь знал, что он находится в корневом терминале. На самом деле, я думаю, что это должно быть поведение по умолчанию, поэтому у вас уже должно быть другое приглашение.
Если вы используете su
, вы можете добавить опцию -, -l or --login
к команде «Обеспечить среду, аналогичную той, которую пользователь ожидал бы, если бы пользователь вошел в систему напрямую». Все в соответствии с man-страницей su. Эти параметры будут загружать новых пользователей .bashrc или любые другие файлы, применяемые к загружаемой оболочке.
Например, su -
переключится на пользователя root со всеми теми же настройками, как если бы вы вошли в систему как root с терминала.
Для получения дополнительной информации см. man su
.
Мне лень, я использую один и тот же .bashrc для пользователя root и моего пользователя. Основная причина в том, что мне нравится устанавливать несколько псевдонимов (cp -I и т. Д.).
Добавьте это, чтобы установить ваше приглашение:
if [[ $EUID == 0 ]] ; then
PS1='\[\033[01;31m\]\u\[\033[01;30m\]@\[\033[01;34m\]\h\[\033[01;30m\]:\[\033[01;34m\]\w\[\033[00m\]\ if [[ $EUID == 0 ]]
устанавливает ваше имя пользователя на красный, если он работает от имени пользователя root.
См. http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html для получения дополнительных советов / опций.
#RED
else
PS1='\[\033[01;32m\]\u\[\033[01;30m\]@\[\033[01;34m\]\h\[\033[01;30m\]:\[\033[01;34m\]\w\[\033[00m\]\ if [[ $EUID == 0 ]]
устанавливает ваше имя пользователя на красный, если он работает от имени пользователя root.
См. http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html для получения дополнительных советов / опций.
#Green
# Comment out the above and uncomment the below for a blue user name.
# PS1='\[\033[01;34m\]\u\[\033[01;30m\]@\[\033[01;34m\]\h\[\033[01;30m\]:\[\033[01;34m\]\w\[\033[00m\]\ if [[ $EUID == 0 ]]
устанавливает ваше имя пользователя на красный, если он работает от имени пользователя root.
См. http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html для получения дополнительных советов / опций.
#Blue
fi
if [[ $EUID == 0 ]]
устанавливает ваше имя пользователя на красный, если он работает от имени пользователя root.
См. http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html для получения дополнительных советов / опций.
добавить следующие строки в .bashrc
if [ $(id -u) -eq 0 ];
then # you are root, set red colour prompt
PS1="\\w# "
else # normal
PS1="\\w$ "
fi
вы также можете настроить PS1 посмотреть на это