Назад | Перейти на главную страницу

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

Я определил следующую долю в 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 может использоваться только для предотвращения установки бита разрешения, поскольку маска побитовая ANDed с битами, которые клиент пытался установить. Если маска установлена ​​на 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 (по умолчанию нет).