ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Как запустить Alias ​​как Sudo в Linux

Как запустить Alias ​​как Sudo в Linux

Мы предполагаем, что вы уже знаете, как создать псевдоним в Linux. Псевдоним поможет вам легко выполнять длинные пользовательские команды. Вы можете сделать псевдоним постоянным, добавив его в bashrc или в файл конфигурации любой оболочки, которую вы используете в Linux.

Проблема возникает, когда вы пытаетесь запустить псевдоним с помощью sudo. Вы увидите ошибку, подобную этой:

sudo: my_alias: command not found

 

Вы будете думать, что, поскольку вы работаете как пользователь root, псевдоним должен быть определен в bashrc пользователя root, т.е. /.bashrc. Попробуйте, но держим пари, это не сработает.

Позвольте нам показать вам хитрый маленький трюк для запуска команды alias как sudo.

 

Запуск alias как sudo

Хитрость в том, чтобы создать псевдоним для самого sudo следующим образом:

sudo='sudo '

 

Пробел (или табуляция, если вы предпочитаете это) после sudo важен в приведенном выше коде. Теперь, если вы запустите команду псевдонима с помощью sudo, она будет работать нормально.

Но почему? Почему это работает сейчас, когда все, что вы сделали, это заменили команду sudo на sudo и пробел? Ответ заключается в том, как псевдоним предназначен для использования.

Если вы обратитесь к руководству alias в bash, вы увидите, что первое слово каждой простой команды, если оно не заключено в кавычки, проверяется на наличие псевдонима. Если последний символ значения псевдонима является пробелом или символом табуляции, то следующее слово команды, следующее за псевдонимом, также проверяется на расширение псевдонима.

Другими словами, в команде только первое слово проверяется на псевдоним. Но если значение псевдонима имеет пробел или табуляцию в конце, следующее слово команды также проверяется на псевдоним.

Вот почему, когда вы просто запускаете команду sudo my_alias с псевдонимом sudo ‘sudo’, сначала sudo проверяется на псевдоним. Псевдоним найден с пробелом в конце, и поэтому ваша система проверяет следующее слово для псевдонима. Он также находит псевдоним для этого, и ваша команда с псевдонимом работает так, как вы хотите.

Надеюсь, вам понравился этот небольшой совет, полезный для работы с псевдонимом sudo. Любые вопросы или предложения всегда приветствуются.

Exit mobile version