Разрешения Samba игнорируются

3

Я определил следующую долю в 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

Но это тоже не помогло.

nullReference
источник

Ответы:

3

Проблема оказалась в настройках режима безопасности в моей конфигурации (или их отсутствии). Следующая конфигурация 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

Я нашел это решение, копаясь в Askubuntu

nullReference
источник
2

Проверьте obey PAM restrictionsпараметр. Если включено, Samba будет создавать файлы с ограничением umask для данного пользователя.

niziak
источник
1

create maskможет использоваться только для предотвращения установки бита разрешения, так как маска поразрядна ANDс битами, которые пытался установить клиент. Если маска установлена ​​на 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

Смотрите документацию .

Свен
источник
1
после установки create mask = 0770 и принудительного создания mask = 0775 мои разрешения становятся 760 для вновь создаваемых файлов
nullReference
0

Слово предупреждения о тестировании этой проблемы:

После той же проблемы я обнаружил, что, по крайней мере, в моем случае это было условно;

  • когда я создаю файл в общем ресурсе samba с помощью нового файла контекстного меню («New Text File.txt»), он не устанавливает бит групповой записи для этого файла (0750)

  • Когда я создаю новый файл с помощью контекстного меню new-file и меняю его имя перед нажатием Enter, он устанавливает бит групповой записи для этого файла! (0770)

Мое решение было тем, о котором @niziak предупреждал. Не используйте подчиненные ограничения PAM (по умолчанию нет).

Дюрандаль
источник