Python - перемещать файлы в корневой каталог в Ubuntu - PullRequest
0 голосов
/ 06 декабря 2018

Мне нужно переместить все файлы из определенного каталога в каталог root с помощью скрипта Python.Мне не удалось выполнить следующий код с ошибкой [Errno 13] Permission denied.

import shutil
import os

source = '../json' 
dest = '/var/www/json'
files = os.listdir(source)

for f in files:
    shutil.move(source+"/"+f, dest)

Возможно ли добавить sudo с этим кодом или есть какой-либо другой способ перемещения файлов в корневую папку?Я работаю в Ubuntu16.04

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Я могу придумать три возможных решения этой проблемы:

  1. Запуск python от имени sudo: sudo python script.py.Возможно, это не самый лучший способ, поскольку существуют возможные проблемы с безопасностью.
  2. Измените права доступа к папке, чтобы пользователь, выполняющий скрипт python, имел доступ к копированию / редактированию файлов в этих папках.
  3. Вызов cp / mv как подпроцесс из python как root.В основном так же, как первый вариант.Это можно сделать, заставив пользователя ввести пароль пользователя root, который, как мне кажется, вам не подходит.Или вы можете использовать что-то вроде polkit, чтобы избежать использования пароля.

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

0 голосов
/ 06 декабря 2018

Вы можете добавить своего пользователя в папку разрешений и дать пользователю право на запись в эту папку.используйте chown или chmod для настройки прав доступа к папке назначения

...