Изменение привилегий на python - PullRequest
1 голос
/ 25 мая 2020

Я столкнулся со следующей проблемой: я поднимаю Provileg ios с помощью «Elevate», но после запуска os.mkdir () я хочу, чтобы он потерял свои привилегии и вернулся к обычному пользователю.

import os
import sys
import subprocess
from elevate import elevate
from os import popen

def is_root():
  return os.getuid() == 0

print("before ", is_root())
user = os.getlogin()

elevate(graphical=False)
username = input("Enter the name of the user to be created in /home: ")
os.mkdir('/home/' + username)
print(os.listdir('/home'))
print("after ", is_root())

Я сделал проверку, если у пользователя есть привилегии, и даже после запуска она отображается как истина, где это означает, что он обладает сверхмощью.

[garden@server ~]$ python3 mkdir.py
before  False
[sudo] password for garden:
before  True
Enter your name : user10
['garden', 'user10']
after  True

Я хотел бы знать, есть ли способ повысить привилегии, а затем отозвать их, чтобы в случае исключения код не работал с пользователем с повышенными привилегиями.

спасибо

...