C言語のsystem関数でコマンドのエイリアス
C言語のsystem関数でエイリアスを設定したコマンドを実行する方法、どなたかご存じないでしょうか。
例えばbashを使っているユーザであれば、ユーザのbash_profileの中に
alias id='id -g username'
と記載し、idコマンドを実施した際には必ずusernameさんのグループIDを出力させるようにします。
この状態で、profileを読み込んでidコマンドを実行すると「500」等のIDが出力されます。
これをCのソースの中にsystem関数として記載します。
勿論ユーザはbashのプロファイルを読み込んでいる状態でgccします。
ソースファイル名をtest.cとすると、test.cのmainは以下
int main(){
system("id");
return 0;
}
この状態でソースをgccして、実行ファイルを実行しても出力結果は先ほどのグループIDのみではなく標準的なid,つまり
uid=0(root) gid=0(root) 所属グループ=0(root),1(bin),2(daemon),3(sys) 以下省略
と出力されていしまいます。
やりたい事はエイリアスを設定したコマンドをCのsystem関数で使いたいのですが、どなたかやり方ご存知の方いらっしゃいますでしょうか。
使用しているOSはLinuxです。
どうぞ宜しくお願い致します。
お礼
できました! /etc/sudoers の変更も必要なんですね。 どうもありがとうございました。