Я создал скрипт Python, который требует sudo
разрешения для запуска (выполнение ICMP-запросов). Этот скрипт создает небольшой каталог и пару .csv
файлов, а также log.txt
файл. Сначала, после запуска программы, мне удалось удалить артефакты после запуска для тестирования создания каталога и файла.
Теперь, внезапно, OS X Finder запрашивает у меня разрешения на удаление каталога и файла журнала. Я выполнил a chmod 775 *
в каталоге, в котором находится мой модуль, и удалил папку и файл по мере необходимости. Однако после повторного запуска скрипта он снова требует от меня предоставить разрешения. Еще один chmod
, я могу удалить файлы и папки. Однако каждый раз, когда я запускаю программу, я сталкиваюсь с одной и той же проблемой.
Есть ли у меня предложения, как это можно исправить навсегда?
решение1
На основании комментариев выше между мной и автором, основная причина проблемы с разрешениями заключается в том, что папка/файлы, созданные в скрипте Python, принадлежат root, а не учетной записи пользователя op. Все, что создано во время работы, sudo
будет принадлежать root.
Обходные пути для этого включают включение команды chmod
или chown
в скрипт, предоставляя учетной записи пользователя op разрешение на удаление файла/папки. Я рекомендую chown
, так как возможно, что Finder (в Mavericks) определяет, что root является владельцем, и запрашивает пользователя. Это происходит со мной, даже когда у моей учетной записи есть полные разрешения (через групповые разрешения). Finder может устанавливать дополнительный уровень защиты для файлов, принадлежащих root. Использование chown
в скрипте должно все правильно настроить для Terminal и Finder!