Мне интересно, есть ли способ внедрить псевдоним при переключении на профиль root с помощью sudo.
Я имею в виду следующее:
sshLogin@linuxVM /home/sshLoginUser/> sudo su -x "alias goHome='cd /home/sshLoginUser/'"
root@linuxVM /home/OtherDir/> goHome
root@linuxVM /home/sshLoginUser/>
Я использую виртуальную машину в облаке для настройки и запуска некоторых операций и хочу со временем добавить больше псевдонимов для повторяющихся задач.
В идеале я хотел бы sudo su
создать source
файл, содержащий мою коллекцию псевдонимов и функций.
решение1
Важно понимать, что это sudo
не расширение оболочки; это запуск команды. Вероятно, есть два решения для того, что вы хотели бы сделать, каждое со своими преимуществами/недостатками:
1 alias hop='sudo id'
: пусть будет sudo
частью псевдонима или
2 sudo -s
(без команды), который запускает интерактивную оболочку и считывает /root/.bashrc
.
решение2
[tom@alarm ~]$ sudo -i
[root@alarm ~]# tail -n 1 .bashrc
alias goHome="cd /home/$SUDO_USER"
[root@alarm ~]# goHome
[root@alarm tom]# pwd
/home/tom
[root@alarm tom]#
Если "встроенных" переменных окружения недостаточно для ваших случаев, вы также можете заставить sudo сохранить некоторые пользовательские. Например:
CERTAINFILE="/home/$USER/different_name" sudo -i --preserve-env=CERTAINFILE