Пользовательский PS1 включен после использования sudo su

Пользовательский PS1 включен после использования sudo su

Я установил скрипт в свою учетную запись .bash_profile без прав root на моей машине Centos Linux, чтобы изменить PS1 после sudo su, но поскольку sudo su на самом деле создает новый сеанс, скрипт, конечно же, останавливается, а мой PS1 остается прежним, несмотря на то, что мой .bash_profile говорит изменить его, здесь нет ничего неправильного, но есть ли способ выполнить команду (в моем случае, чтобы изменить мой PS1) после sudo su? Я также попытался поместить скрипт в .bashrc, и то же самое.

решение1

На мой взгляд, нагромождение вещей sudoприводит suк беспорядку.

Для меня наиболее надежный способ создания правильной среды для root, включающий установку правильного PATH и других настроек из соответствующих файлов, /root/этоsudo -i

Пожалуйста, прочтите страницы руководства.man suиman sudoпотому что есть куча тонкостей с PATH и другими переменными сеанса и среды, которые можно изменить или нет по умолчанию или с помощью определенных переключателей.

Обратите внимание на разницу между su -и , suа также на тот факт, что обычно sudo настроен /etc/sudoersна подавление определенных переменных среды ...

Этот стол(и вся статья) приводит некоторые различия, на первый взгляд, похожих команд:

                                     corrupted by user's 
        HOME=/root  uses root's PATH     env vars
sudo -i     Y       Y[2]                 N
sudo -s     N       Y[2]                 Y
sudo bash   N       Y[2]                 Y
sudo su     Y       N[1]                 Y


[1] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
    probably set by /etc/environment
[2] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

Связанный контент