Я определил следующую долю в smb.conf
[development_server]
comment = Development directories
path = /sites
writeable = yes
valid users = @dev
guest ok = no
directory mask = 0775
create mask = 0775
Проблема в том, что всякий раз, когда я создаю файл в Windows, права доступа к этому файлу устанавливаются как 764, а не как 755. Однако каталоги устанавливаются правильно с 775. Я запутался. Я пробовал установить следующее:
[global]
unix extensions = yes
Но и это не помогло.
Проблема оказалась в настройках режима безопасности в моей конфигурации (или в их отсутствии). Следующая конфигурация smb.conf теперь работает для меня, и все пользователи в моей группе безопасности «dev» теперь имеют 775 для всех файлов, которые они создают в общей папке:
[development_server]
comment = Development directories
path = /sites
writeable = yes
valid users = @dev
guest ok = no
create mask = 0775
force create mode = 0775
security mask = 0775
force security mode = 0775
directory mask = 0775
force directory mode = 0775
directory security mask = 0775
force directory security mode = 0775
Я нашел это решение, копаясь в Аскубунту
create mask
может использоваться только для предотвращения установки бита разрешения, поскольку маска побитовая AND
ed с битами, которые клиент пытался установить. Если маска установлена на 7, но клиент пытается что-то меньшее, например 6, клиент "выигрывает", поскольку 0 AND 1
для бит выполнения 0
.
force create mask
работает наоборот, побитовое OR
маска того, что пытается установить клиент, поэтому, если вы установите 7
здесь каждый бит закончится x OR 1
, что всегда 1
.
Чтобы заставить значение 0775
независимо от того, что пытается установить клиент, вы должны объединить два:
create mask = 0770 (0000 would also work)
force create mask = 0775
Увидеть документация.
Проверьте obey PAM restrictions
параметр. Если включено, Samba будет создавать файлы с ограничением umask для данного пользователя.
Слово предупреждение по тестированию этой проблемы:
Перенеся ту же проблему, я обнаружил, что, по крайней мере, в моем случае, это было условно;
когда я создаю файл в общей папке samba с помощью контекстного меню new-file ('New Text File.txt'), он не установить бит групповой записи в этом файле (0750)
когда я создаю новый файл с помощью контекстного меню new-file и меняю его имя, прежде чем нажимать ввод устанавливает бит групповой записи в этом файле! (0770)
Мое решение было тем, о котором предупреждал @niziak. Не используй соблюдать ограничения PAM (по умолчанию нет).