2012-03-28 57 views
1

有没有办法配置二进制文件作为“SUID”使用automake/autoconf? 是否有任何magick可以导致make install设置给定二进制目标的suid位?Automake/autoconf配置安装为SUID

注意: 我正在脚本内部运行“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 
####-------------------------------#### 

所以人们可以认为它是一个fakeroot问题,但如果我移动chmodMakefile.am我打包脚本,它的工作原理。这足以说服我fakeroot正在做它的工作。

谢谢。

回答

0

GAHH !!

有人不自觉地把我的剧本,$FAKEROOT make install后:

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

更换由make install writen的所有权限。

删除此行install-exec-hook按预期工作和SUID位被保留...

(均做了,我把我的斧子?...)

+0

你的斧头是在那里,在你身后,以左边,并在包含炸药的袋子下! – 2012-03-28 17:16:29