У меня есть один двоичный файл (имя bmu), которому нужна привилегия root при вызове функции statfs.
Linux SUID config вызвать двоичный файл не удалось выполнить
ОС SuSE Linux 2.6.16.60-0.21-smp
Пользователь тест, который должен работать BMU и не является привилегированным пользователем
[email protected]:~> id
uid=1056(test) gid=0(root) groups=0(root),16(dialout),33(video)
Я протестировал 3 вида сценариев.
---> сценарий 1
Если bmu не сконфигурирован SUID, bmu может быть выполнен, но вызов завершится с ошибкой.
-rwxr-xr-x 1 test root 14389879 2012-04-10 10:38 bmu
---> Сценарий 2
Если БМУ настроен SUID, когда БМУ запустить с помощью теста, она не будет выполнена с быстрой "СУБД API библиотеки 'libclntsh.so' загрузка не удается"
-rwsr-sr-x 1 root root 14389879 2012-04-10 10:38 bmu
---> сценарий 3
Если bmu запущен корнем, он будет выполнен успешно. конечно, независимо от того, настроен ли SUID или нет.
-rwxr-xr-x 1 root root 14389879 2012-04-10 10:38 bmu
-rwsr-sr-x 1 root root 14389879 2012-04-10 10:38 bmu
Из сценария 2, похоже, вопрос о LD_LIBRARY_PATH
конфигурации, но из сценария 1, мы можем обнаружить, что это не должно вопрос LD_LIBRARY_PATH
конфигурации. Из сценария 3 мы можем обнаружить, что bmu является исполняемым root.
Только сценарий 2 имеет проблему, поэтому кто-то может дать некоторые предложения? благодаря!
очень точный и полезный ответ! спасибо, Петеш! Я добавляю требуемый путь lib к ld.so.conf, и программа работает хорошо. Я делаю простое описание операции: 1. logon system by root; 2. добавьте требуемый путь lib к /etc/ld.so.conf; 3. Запустите команду ldconfig; 4. su - test; 5. запустите двоичный файл, настроенный SUID, чтобы проверить результат: OK! – siikee
Добавление пути библиотеки к /etc/ld.so.conf также является допустимой альтернативой – Petesh