Вопрос или проблема
Это довольно сложный вопрос, и я не уверен, где задать его. Возможно, кто-то уже сталкивался с чем-то подобным и столкнулся с аналогичной проблемой.
Следующий сценарий:
У меня есть сервер Seafile версии 6.2.5 на RootServer с Ubuntu 16.04 –> cloud.example.com (seafile.com –> решение Opensoruce Cloud)
Внутри моей домашней сети работает система NAS Helios4 с процессором ARM и Openmediavault (OMV) с общими ресурсами Samba и установленным безголовым seaf-cli.
На Helios4 работает безголовый seaf-cli под пользователем “seafile”.
Сервер Seafile cloud.example.com расшаривает Library1.
Seaf-cli на Helios4 синхронизирует Library1 с папкой общего ресурса Samba “Samba1”.
Samba1 расшарен с правами на чтение/запись для пользователей seafile, user1 и user2. Синхронизация Library1 проходит безупречно. Все файлы из Library1 синхронизированы с Samba1. Команда ls -l в Samba1 показывает права доступа:
ls -l drwxr-sr-x 2 seafile users 4096 Apr 2 08:24 Folder1
-rw-r–r– 1 seafile users 452334049 Mar 29 09:45 Movie1.MOV
-rw-r–r– 1 seafile users 422486 Mar 29 10:42 Word.docx
-rw-r–r– 1 seafile users 433303 Mar 14 17:46 Letter.pdf
Если я открываю файлы как user1 или user2 с Mac внутри общего ресурса Samba1, я не могу редактировать файлы, написанные seaf-cli под пользователем seafile, но могу их открыть/прочитать.
Если я открываю файлы как пользователь seafile с того же Mac внутри Samba1, я могу редактировать файлы, написанные seaf-cli под пользователем seafile. Я могу читать и писать.
Причина в том, что seaf-cli записывает файлы с правами 644 для пользователя seafile.
Так что мой вопрос таков:
Есть ли способ заставить приложение seaf-cli создавать все файлы с правами 664?
Тогда user1 и user2 могли бы читать и писать в samba-общем ресурсе.
Помощь будет очень признательна 😉
С уважением, Крис
Я знаю, что это очень старый вопрос, но вы должны иметь возможность установить значение по умолчанию umask для клиента seaf-cli, подставив нужное значение umask в этой команде: seaf-cli config -k umask -v 002
.
Я только что протестировал это с установленной у меня версией seaf-cli, которая 9.0.6. Мои существующие файлы были обновлены клиентом Seafile с маской разрешений 775, используя umask 002.
Ответ или решение
Чтобы разрешить приложению seaf-cli создавать файлы с разрешениями 664 (что означает чтение и запись для владельца и группы, и только чтение для остальных), вам необходимо изменить маску разрешений, с которой работает seaf-cli. По умолчанию seaf-cli, вероятно, использует маску 022, что приводит к созданию файлов с разрешениями 644.
Для решения вашей проблемы выполните следующие шаги:
-
Настройка umask для seaf-cli:
Откройте терминал и введите следующую команду, чтобы установить желаемую маску:seaf-cli config -k umask -v 002
В данном случае
umask 002
позволит файловой системе устанавливать разрешения 664 для создаваемых файлов. Это означает, что владелец и группа (в данном случаеseafile
иusers
) смогут редактировать файлы. -
Проверка изменений:
После того как вы измените umask, выполните синхронизацию библиотеки снова. Вы можете использовать командуseaf-cli sync
, чтобы убедиться, что новые файлы создаются с обновленными разрешениями. -
Проверка разрешений:
Выполните командуls -l
в каталоге Samba1, чтобы убедиться, что новые файлы теперь имеют разрешения 664:ls -l Samba1
Вы должны увидеть файлы с разрешениями, которые теперь позволяют группе (пользователи
user1
иuser2
) редактировать эти файлы. -
Проверка конфигурации Samba:
Убедитесь, что настройки Samba также правильно настроены, чтобы передавать разрешения, особенно если у вас есть специфические настройки, которые могут ограничивать доступ к файлам. Например, в файле конфигурации Samba (/etc/samba/smb.conf
) проверьте параметрыcreate mask
иdirectory mask
, которые могут затрагивать создание файлов и каталогов на уровне Samba.
Если все шаги выполнены правильно, ваши пользователи теперь смогут редактировать файлы, полученные от seaf-cli, без каких-либо проблем. Если возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью.