sudo にエイリアスを渡すにはどうすればいいですか?

sudo にエイリアスを渡すにはどうすればいいですか?

~/.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

皮肉なことに、解決策はsudoエイリアスから呼び出すことです。

alias sd="sudo "

注: 推奨されませんが、エイリアスに次の名前を付けることもできますsudo:alias sudo="sudo "

Bash リファレンスマニュアル (エイリアス)

エイリアス値の最後の文字が空白の場合、エイリアスの後に続く次のコマンド ワードもエイリアスの拡張に対してチェックされます。

関連情報