Как я могу передать псевдоним sudo?

38

Я попытался положить свои псевдонимы ~/.bash_profile, ~/.bashrc, /etc/profile, и /etc/bashrc.

Я все еще не могу выполнить следующее:

alias zf2="php public/index.php"

и затем выполните:

sudo zf2 orm:info

Кажется, проблема в том, что я не могу указать псевдоним как команду, используя visudo--, что вызывает синтаксическую ошибку.

Поэтому я не могу позвонить:

sudo zf2 orm:info

Однако мне удалось создать скрипт в / usr / share / scripts / zf2, который содержит:

#!/bin/bash

alias zf2="php public/index.php"
zf2 $1

и добавьте этот скрипт в качестве команды в visudo. Когда этот скрипт находится в PATH конечного пользователя, я могу выполнить

zf2 orm:info

У меня есть разные псевдонимы, zf2которые мне нужно предоставить конечному пользователю. Я бы предпочел поддерживать псевдоним вместо набора скриптов.

Майкл Ниньо
источник
1
К сожалению, я хочу использовать псевдонимы в visudo, и я не могу.
Майкл Ниньо
2
Это невозможно. Псевдонимы обрабатываются оболочкой (в вашем случае bash) и расширяются перед отправкой в ​​приложение. sudoсама ничего не знает об псевдонимах.
Стивен
2
Поскольку @Steven технически правильно, вы должны выяснить , является ли вы просто хотите расширить псевдонимы до до sudoпередаются в линии, или хотите ли вы псевдонимы расширенных в повышенной среде. Педантизм - это не просто способ вызвать злобу. (Ух ты, но это последнее предложение совсем не выглядит кошерным.)
can-ned_food
3
Возможный дубликат Как я могу использовать псевдоним команды для sudo?
Жиль "ТАК - перестань быть злым"
1
Попробуйте это сsudo -E
Дени де Бернарди

Ответы:

66

По иронии судьбы, решение состоит в том, чтобы позвонить sudoс псевдонима.

alias sd="sudo "

Примечание: хотя это и не рекомендуется, вы можете назвать псевдоним sudo:alias sudo="sudo "

Справочное руководство Bash (псевдонимы)

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

Стивен
источник
7
Возможно, я вижу причины, по которым кто-то хотел бы и не хотел бы, чтобы это было сделано по умолчанию для любой системы. Удобство и ожидания, как просили, а не быть более осторожным с повышенными привилегиями.
Пизис
5
alias sd="sudo "maychance?
Нат
Изучив псевдонимы, я заметил, что у меня нет alias sudo="sudo "среды конечных пользователей. Это ответ
Майкл Ниньо