Возможно ли, что основной процесс Python выполняется с правами администратора, но затем запустить подпроцесс (многопроцессорность) Python в качестве другого пользователя? Я также хочу, чтобы домашний каталог пользователя и параметры оболочки применялись так же, как если бы этот интерпретатор Python был запущен этим пользователем.Демонтаж подпроцесса Python
Прямо сейчас, при использовании os.setuid и GID, разрешения являются правильными, но домашний каталог еще неверен, как и следовало ожидать:
>>> import os
>>> os.setgid(1000)
>>> os.setuid(1000)
>>> print os.getuid()
1000
>>> print os.getgid()
1000
>>> f = open('/etc/shadow')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 13] Permission denied: '/etc/shadow'
>>> os.system('echo $HOME')
/root
0
Есть идеи?
И да, я знаю, что os.system устарела в пользу подпроцесса. Однако для целей тестирования os.system намного проще. – Soviero
Почему бы просто не войти в систему как этот пользователь? –
@PadraicCunningham, потому что он работает как damon, который будет уменьшать его подпроцессы по мере необходимости. – Soviero