2012-03-28 8 views
1

Gibt es eine Möglichkeit, eine Binärdatei so zu konfigurieren, dass sie als "SUID" mit automake/autoconf installiert wird? Gibt es irgendeine Magie, die eine make install führen kann, um das suid-Bit eines bestimmten binären Ziels zu setzen?Automake/autoconf-Konfiguration zur Installation als SUID

HINWEIS: Ich führe ein "fakerooted" make install innerhalb eines Skripts, um eine TAR-Datei zu erstellen.

Ich habe versucht:

# 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 "####-------------------------------####" 

Aber ohne Erfolg.

Während make install ich sehe:

#### 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 
####-------------------------------#### 

So könnte man denken, dass es ein Problem mit fakeroot ist, aber wenn ich die chmod aus Makefile.am meine Verpackung Skript bewegen, es funktioniert. Das ist genug, um mich zu überzeugen fakeroot macht seine Arbeit.

Danke.

Antwort

0

GAHH !!

Jemand unbewusst in meinem Skript setzen, nach $FAKEROOT make install:

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

von make install writen alle Berechtigungen zu ersetzen.

Entfernen dieser Zeile wird die install-exec-hook funktioniert wie erwartet und die SUID-Bit erhalten bleibt ...

(Were setze ich meine Axt? ...)

+0

Ihre Axt da drüben, hinter dir, zu die linke und unter der Tasche mit dem Dynamit! –