Я пытаюсь использовать setfsuid () с python 2.5.4 и RHEL 5.4.
Так как он не включен в модуль os, я обернул его в собственный модуль C и установил его как модуль расширения python, используя distutils.
Однако, когда я пытаюсь использовать его, я не получаю ожидаемого результата.
setfsuid () возвращает значение, указывающее на успешность (изменение от суперпользователя), но я не могу получить доступ к файлам, к которым только пользователь с новым доступом должен иметь доступ пользователя (используя open ()), указывая, что fsuid не был действительно изменен.
Я пытался проверить, что setfsuid () работает, запустив его дважды подряд с одним и тем же пользовательским вводом
В результате ничего не изменилось, и при каждом вызове возвращаемое значение было со старым идентификатором пользователя, отличным от нового. Я также вызвал getpid () из модуля, и из скрипта python оба вернули один и тот же идентификатор. так что это не проблема.
На всякий случай важно отметить, что я делаю все это в рамках процесса демона Apache (WSGI).
Кто-нибудь может дать объяснение этому?
Спасибо