Я надеюсь mv
действительно больших (10 с ГБ до ТБ) видеофайлов (и пакетов видеофайлов) в пределах одной и той же файловой системы из общего каталога («исходный код») в каталог обработки («» цель ») и в конечном итоге к хранению. Файлы поступают из разных источников в нашей сети, но обычно пользователь, который будет выполнять задачи (www-data
), не имеет автоматически права на запись в файлы.
Исходные и целевые каталоги находятся на RAID, и я использую Ubuntu 16.04 и, возможно, в будущем буду работать на Mac.
У меня есть (в Ubuntu):
- Установите ACL для исходного и целевого каталогов так, чтобы новые файлы получали 777 разрешений и для владельца / группы было установлено значение
www-data
.
- Установите
mask
для предоставления rwx
для любых созданных файлов
chown
chgrp
источник и цель www-data
Я знаю, что:
Я мог бы использовать cp --no-preserve=all
Я мог бы использовать rsync [...] chmod=ugo+rwx [...]
Я мог бы sudo chmod
каждый раз, когда мне нужно что-то перевести
Но дело здесь в том, чтобы попытаться избежать копирования этих огромных файлов. И эти сценарии работают в основном за веб-приложением (таким образом, пользователь www-data
). mv
, похоже, не имеет способа изменить права доступа к файлу при его перемещении (я понимаю, почему вы хотели бы это по умолчанию), но есть ли какой-то другой подход, который я должен изучить?
Веб-приложение написано на python (с использованием Flask). Может, есть какой-то метод Python, которого я не видел (os.chmod()
получает запрещенное разрешение)?
Спасибо!
Edit:
Вот getfacl
в исходном каталоге:
# file: raid_share/
# owner: root
# group: www-data
# flags: ss-
user::rwx
group::rwx
mask::rwx
other::rwx
default:user::rwx
default:user:myuser:rwx
default:group::rwx
default:group:www-data:rwx
default:mask::rwx
default:other::rwx
Вот getfacl
для каталога, который отправляется SFTP (разумный способ, которым пользователи будут отправлять файлы на сервер) в исходный каталог сервера:
# file: test_05034/
# owner: myuser
# group: www-data
# flags: -s-
user::rwx
user:myuser:rwx #effective:r-x
group::rwx #effective:r-x
group:www-data:rwx #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:user:myuser:rwx
default:group::rwx
default:group:www-data:rwx
default:mask::rwx
default:other::rwx
и getfacl
для файла в этом каталоге:
# file: test_05034_r1.mov
# owner: myuser
# group: www-data
user::rw-
user:myuser:rwx #effective:rw-
group::rwx #effective:rw-
group:www-data:rwx #effective:rw-
mask::rw-
other::rw-
Мой мозг растает ...