Настройка Automake / autoconf для установки в качестве SUID - PullRequest
1 голос
/ 28 марта 2012

Есть ли способ настроить двоичный файл для установки в качестве «SUID» с помощью automake / autoconf? Есть ли какая-нибудь магия, которая может make install установить бит 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, но если я переместу chmod из Makefile.am в мой сценарий упаковки, это будет работать. Этого достаточно, чтобы убедить меня, что fakeroot выполняет свою работу.

Спасибо.

1 Ответ

0 голосов
/ 28 марта 2012

GAHH !!

Кто-то неосознанно вставил в мой скрипт после $FAKEROOT make install:

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

с заменой всех разрешений, написанных на make install.

Удалениев этой строке install-exec-hook работает как положено, а бит SUID сохраняется ...

(я положил свой топор? ...)

...