2016-01-07 4 views
0

Я просто столкнулся с проблемой, которая, вероятно, легко исправить - ну, для вас, ребята. Я пытаюсь создать каталог, изменить его, создать файл в этом каталоге и прикрепить к этому файлу. Все работает отлично - за исключением того, что каталог/файл заблокирован, и это не очень удобно для меня. Я запускаю свой скрипт как root, потому что мне нужно. Когда я запускаю его нормально, проблема не возникает. Я нахожусь на Ubuntu, а ниже - примерный код плюс изображение разрешений данного файла, спасибо!Python создает заблокированные файлы на Ubuntu

import os 

os.makedirs("foo", exist_ok = True) 
os.chdir("foo") 

with open("oof", "a") as f: 
    f.write("something" + "\n") 

A picture of the permissions of the given file

+0

@Leo Да, я забыл упомянуть, что, извините. Мне нужно, хотя - я кодирую анализатор пакетов. – Reum12

+1

См. [Os.seteuid()] (https://docs.python.org/2/library/os.html#os.seteuid). – msw

+1

См. Также [Принцип наименьших привилегий] (https://en.wikipedia.org/wiki/Principle_of_least_privilege). Не выполняйте действия как root, или если вы это делаете, уменьшите свою привилегию (через seteuid) для каждого бита, за исключением той, которая ему действительно нужна. Это системная вещь, не относящаяся ни к Python, ни к Ubuntu. – msw

ответ

0

Как вы сказали, что вы запустите скрипт как корень, так что другие пользователи не могут получить доступ к этому файлу.
Вы можете изменить права доступа к директориям:

from subprocess import call 

call(['chmod', 'mode', 'path']) 
Смежные вопросы