38
7
I have tried putting my aliases in ~/.bash_profile
, ~/.bashrc
, /etc/profile
, and /etc/bashrc
.
I am still unable to execute the following:
alias zf2="php public/index.php"
and then execute:
sudo zf2 orm:info
The issue seems to be that I am unable to specify an alias as a command using visudo-- which causes a syntax error.
So I am unable to call:
sudo zf2 orm:info
However, I was able to create a script at /usr/share/scripts/zf2 which contains:
#!/bin/bash
alias zf2="php public/index.php"
zf2 $1
and add this script as the command in visudo. When this script is in the end user's PATH I am able to execute
zf2 orm:info
I have different aliases like zf2
that I need to expose to the end user. I would prefer to maintain alias instead of a collection of scripts.
1Unfortunately I want to use aliases in visudo and I am unable. – Michael Niño – 2017-06-21T02:57:50.150
2That is not possible. Aliases are handled by the shell (in your case bash) and expanded before being sent to the application.
sudo
itself knows nothing about aliases. – Steven – 2017-06-21T03:49:40.9472Because @Steven is technically correct, you should clarify whether you simply want to expand aliases prior to
sudo
being passed the line, or whether you want the aliases expanded in the elevated environment. Pedantry isn't merely a way to elicit eye-rolls. (Wow, but that last sentence doesn't look kosher at all.) – can-ned_food – 2017-06-21T06:44:25.2503
Possible duplicate of How can I alias a command for sudo?
– Gilles 'SO- stop being evil' – 2017-06-21T09:26:02.8671Try it with
sudo -E
– Denis de Bernardy – 2017-06-21T10:33:14.180