Вы можете пометить свой скрипт Python setuid, который делает его запущенным как root независимо от того, какой пользователь его запускает.Имейте в виду, что это может быть серьезной угрозой безопасности, потому что, если пользователь найдет способ заставить ваш скрипт сделать что-то, чего он не должен был делать, то он может потенциально причинить вред корневым привилегиям.Если вы сделаете свой скрипт setuid, убедитесь, что он очень простой и выполняет только одно, с множеством проверок ошибок, чтобы предотвратить непредвиденные вводы.(Для получения дополнительной информации обратитесь к setuid; вам нужно использовать chmod, чтобы отметить бит setuid исполняемого файла.)
Часто лучшим решением является предоставление групповым разрешениям каталога, в котором вы хотите создать новый.каталоги, а затем добавьте эту группу для пользователей, которые будут запускать сценарий.
Вы также можете пойти на компромисс между этими двумя решениями, установив сценарий setuid, но в начале сценария заставьте его использовать свои привилегии root для принятияличность другого пользователя.Затем создайте каталоги, используя привилегии того другого пользователя, которому вы дали соответствующие разрешения.Таким образом, вы по-прежнему выполняете операцию таким образом, что у пользователей нет разрешения на ее непосредственное выполнение (поэтому они должны использовать сценарий), но вы сводите к минимуму риск того, что они смогут использовать ваш сценарий дляделаю разные вещи, которые вы не ожидали.
Я нашел здесь что-то достойное о написании программ setuid:
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.124.384