Проблемы с правами доступа в программе setuid-root
Я написал программу, скомпилировал ее, скопировал в / usr / local / bin / и дал ей разрешение на доступ к файлу setuid-root.
К сожалению, я не могу заставить программу работать должным образом из-за проблем с разрешениями, то есть она работает хорошо, когда я называю ее непривилегированным пользователем из командной строки, но выдает ошибки, когда я называю ее непривилегированной. Пользователь из модуля PAM pam_exec - и вот как я хочу использовать его в конце.
До сих пор у меня были следующие различия между вызовом его из командной строки и вызовом его из pam_exec:
Когда я не даю программе права доступа к файлу setuid-root, а вместо этого даю ей возможность cap_setuid для Linux, которая работает из командной строки, но с pam_exec программа вообще не запускается с ошибкой «Операция не разрешена».
Для дальнейшего выполнения программы не только эффективный, но и реальный UID должен быть равен 0. Из командной строки это работает, когда я использую setuid (0) в программном коде, но с pam_exec, setuid (0) завершается неудачно чтобы изменить реальный UID, я должен вместо этого использовать setreuid (0,0).
Хотя реальный и эффективный UID равен 0, я по-прежнему получаю сообщения об ошибках типа «Отказано в доступе» и «Операция не разрешена» при вызове программы из pam_exec. Во-первых, это произошло при выполнении внешней команды lvcreate из моей программы setuid-root, и после того, как я решил, что теперь, используя вместо этого вызовы библиотеки lvm dbus, я даже получаю «Операция не разрешена» при выполнении простой команды chown () в каталоге в локальная файловая система. Конечно, все это прекрасно работает, когда я запускаю свою программу из командной строки.
Любая идея о возможных причинах, почему программа с разрешением файла setuid-root (или программа со специальными возможностями Linux), когда она вызывается непривилегированным пользователем из PAM-модуля pam_exec, ведет себя очень иначе, чем когда она вызывается непривилегированным пользователем из командная строка? Или как вообще возможно, что возникают ошибки «Операция не разрешена» и «Отказано в доступе», хотя и getuid (), и geteuid () возвращают 0?
С уважением Кристоф
0 ответов на вопрос
Похожие вопросы
-
3
Ubuntu Server с рабочим окружением GNOME - настройка разрешений файла конфигурации Apatche
-
2
Как разрешить запуск программ, требующих прав администратора, при запуске в Vista?
-
1
Windows не может записать на диск во время chkdsk и сохранения в офисе
-
-
5
Есть ли способ запустить запланированное задание в Windows XP без необходимости ввода имени пользова...
-
3
Как я могу запретить другим пользователям просматривать содержимое моего домашнего каталога, кроме о...
-
8
Как я могу дать права на запись в папку всем пользователям Linux?
-
7
Удаление «восстанавливаемых» файлов в Vista
-
1
Доступ к бывшему диску XP в качестве второго диска под Windows 7
-
5
Доступ к бывшему диску XP в качестве второго диска под Windows 7 без Chowning
-
1
В чем разница между группами по умолчанию в Mac OS X?