У меня есть сервер Ubuntu, разделяющий некоторые папки с помощью samba. Когда клиент создает новую папку или файл, разрешения не устанавливаются в соответствии с настройками в smb.conf.
Мои текущие настройки для конкретной акции:
[share]
path = /mnt/share
browsable = yes
guest ok = no
writable = yes
read only = no
create mask = 0774
directory mask = 0774
write list = netuser
Когда клиент Samba (окно Windows 7) использует учетную запись «netuser» для создания файла или каталога, разрешения становятся
drwxr-sr-- 2 netuser sambashare 4096 2012-01-22 21:14 New folder
-rwxrw-r-- 1 netuser sambashare 0 2012-01-22 21:07 New Text Document.txt
Родительский каталог имеет установленный флаг идентификатора группы, таким образом, владелец группы sambashare. Идея состоит в том, что и пользователи samba, и пользователи сервера входят в группу sambashare и, следовательно, должны иметь возможность редактировать, удалять и создавать файлы и каталоги. Однако, поскольку созданные папки не имеют установленного флага записи для группы, пользователи сервера не могут создавать новые файлы или папки в этих папках без sudo.
Я протестировал добавление и удаление маски каталога, принудительного режима каталога, режима безопасности каталога и принудительного режима безопасности каталога, но поведение все еще остается. Вновь созданные файлы и папки не получают предполагаемого разрешения 774, а скорее 764 и 754 соответственно.
Чего мне не хватает? Почему Samba не устанавливает правильные разрешения?
После многих проб и ошибок, это правильный код для совместного использования samba dir с использованием групп SGID и unix. Если пользователь подключается анонимно, он получает права доступа, если он входит в систему и является членом назначенной группы, он получает права доступа.
У меня есть группа с именем «admin», установленная в качестве основной группы для пользователей с правами на запись, все остальные получают права только на чтение.
Я никому не навязываю пользователей, поэтому разные люди, работающие над одними и теми же файлами, не мешают друг другу.
Я установил chmod 2755 в общий каталог, чтобы он наследовал созданные каталоги с той же группой «admin»
Проверка, все ли хорошо:
Соответствующая часть /etc/samba/smb.conf:
Этот пост направил меня в нужное русло, но testparm выявил 4 неверные директивы, поэтому я поделился здесь фиксированной конфигурацией. В samba, чем меньше указаний вы указываете, тем лучше он работает.
источник
У меня была та же проблема, но все, как директивы маски , не работало для меня (Samba 4.3.11):
Единственная работающая опция была в разделе [global] или share:
Просто измените все разрешения для папок и файлов по своему усмотрению, чтобы будущие папки и файлы наследовали те же разрешения.
источник
4.8.11
наfreebsd
тоже :)При подключении с других устройств Unix / Linux / OSX / MacOS возникает очень похожая проблема: все параметры игнорируются, если вы не укажете
И связаться с
smb://<serverhost>
вместоcifs://<serverhost>
.источник
источник