1

У меня есть два псевдонима в моем .bash_profile . Я хочу, чтобы sudo их обоих:

$ cat ~/.bash_profile
export EDITOR=emacs
...
alias yum="dnf"
alias ssh="ssh -2"
...

Я знаю, как сказать sudo о соблюдении моего окружения (-E), но я не могу найти вариант для псевдонимов. Поиск страницы alias по псевдониму приводит к тому, что Pattern not found.

Как мне сказать sudo чтобы чтить мои псевдонимы?

Заранее спасибо.


Я пытаюсь избежать этих надоедливых сообщений из-за смены команд в Fedora:

$ sudo yum update
[sudo] password for: 
Yum command has been deprecated, redirecting to '/usr/bin/dnf update'.
See 'man dnf' and 'man yum2dnf' for more information.
...

2 ответа2

1

sudo не может по-настоящему "уважать" псевдонимы, поскольку они являются специфической для оболочки функцией - единственный способ узнать о них sudo, если его научить читать ~/.bashrc , ~/.zshrc , ~/.cshrc . .. само собой.

Для обычных псевдонимов вы можете обмануть саму оболочку в расширении их, когда последует sudo:

alias sudo="sudo "

(Это где-то задокументировано.)

Но для функций нет ничего подобного; вместо этого вам придется использовать интерактивный режим sudo -sE .

1

Другое возможное решение вашей проблемы - как обычно поместить псевдонимы в ваш файл /home/YourName/.bash_aliases , а затем связать этот файл с домашним каталогом root:

      sudo ln -s /home/YourName/.bash_aliases /root/.bash_aliases

Это должно работать автоматически, потому что большинство дистрибутивов имеют эти строки в файле .bashrc который вам дан по умолчанию,

      if [ -f ~/.bash_aliases ]; then
          . ~/.bash_aliases
      fi

Если у вас их нет, их легко добавить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .