2012-03-28 6 views
1

automake/autoconfを使用してバイナリを "SUID"としてインストールする方法はありますか? make installに与えられたバイナリターゲットのsuidビットを設定するような魔法はありますか?SUIDとしてインストールするAutomake/autoconf設定

注: スクリプト内に "fakerooted" make installを実行して、tarファイルを作成しています。

は、私が試した:

# Makefile.am 

bin_PROGRAMS = my_bin 

#... 

install-exec-hook: 
    echo "#### Setting SUID for my_bin. ####" 
    ls -l $(DESTDIR)$(bindir)/my_bin 
    chmod 4755 $(DESTDIR)$(bindir)/my_bin 
    ls -l $(DESTDIR)$(bindir)/my_bin 
    echo "####-------------------------------####" 

しかし、誰成功を収めました。 make install中に

私は、次を参照してください。

#### Setting SUID for sudo_script. #### 
-rwxr-xr-x 1 root root 8704 Mar 28 13:30 /install.pak/usr/bin/my_bin 
-rwsr-xr-x 1 root root 8704 Mar 28 13:30 /install.pak/usr/bin/my_bin 
####-------------------------------#### 

だから、1はそれがfakerootの問題ですが、私は私のパッケージングスクリプトにMakefile.amのうちchmodを移動した場合、それがうまくいくと思うことができました。これは私にfakerootがその仕事をしていることを確信させるのに十分です。

ありがとうございました。

答えて

0

ガー!無意識のうちに$FAKEROOT make install後、私のスクリプトに入れ

誰か:

$FAKEROOT chmod 755 $PAK_DIR/usr/bin/* 

make installによって書かすべての権限を置き換えます。期待とSUIDビットが保存されているように、このラインinstall-exec-hook作品を削除

...

(た私は斧を入れたのですか?...)

+0

あなたの斧はあなたの後ろに、あそこです左、そしてダイナマイトを入れたバッグの下に! –

関連する問題