2012-03-28 2 views
1

automake/autoconf를 사용하여 "SUID"로 설치할 바이너리를 구성하는 방법이 있습니까? make install에 주어진 바이너리 타겟의 suid 비트를 설정하는 magick이 있습니까?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 "####-------------------------------####" 

하지만 성공.

#### 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에 문제가 생각할 수있는,하지만 난 chmod- Makefile.am 밖으로 내 포장 스크립트를 이동하는 경우, 그것은 작동 : make install 동안

나는 참조하십시오. 이것은 fakeroot이 저의 임무를 수행하고 있다는 것을 확신시키기에 충분합니다.

감사합니다.

답변

0

가히 !! 무의식적으로 $FAKEROOT make install 후, 내 스크립트에 넣어

사람 :

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

make install에 의해 writen 모든 권한을 교체. 예상과 SUID 비트가 유지 될 때

...이 선에게 install-exec-hook 작품을 제거

는 (한 이었나 내 도끼를 넣어? ...)

+0

귀하의 도끼 뒤에,에,이 이상하다 왼쪽, 그리고 다이너마이트가 들어있는 가방 아래! –