eject и setuid

экспериментирую тут с автомонтированием через udev с добавлением всяких собственных ништяков. pmount мне не особо нравится, к тому же надобность есть только в отмонтировании из-под пользователя, а это можно и другими средствами реализовать. наиболее приемлемым мне показался eject (из состава util-linux) со взведенным uid битом. но, как оказалось, не все так просто, как казалось. chmod ug+s /usr/bin/eject особого эффекта не дал. отмонтирование сбоило из-за недостатка прав. изучение исходников показало, что за каким-то чертом разработчики запуск umount делают весьма странным образом. после fork-а дергают sedgid(getgid()) и setuid(getuid()). сакральный смысл этих действий мне совершенно неясен, потому перед сборкой делается следующее:

sed -i 's/getgid/getegid/' sys-utils/eject.c
sed -i 's/getuid/geteuid/' sys-utils/eject.c

после этого все работает как надо

eject и setuid: 2 комментария

    1. а я от всех этих излишеств типа udevil, pmount и т.д. как раз и пытаюсь избавиться. к тому-же и по работе иной раз такие дурацкие требования к автомонтированию выдвигают, что намного проще и гибче их самому навелосипедить, чем чужие мотоциклы под свои нужды приспосабливать

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *