Установите umask, установите разрешения и установите ACL, но SAMBA не использует их?
Я работаю на Ubuntu Server 12.04. У меня есть папка с названием "Музыка", и я хочу, чтобы разрешения по умолчанию для нее были равны 775, а для файла по умолчанию - 664.
Я установил разрешения по умолчанию для папки "Музыка" на 775.
Я настроил ACL для использования этих разрешений по умолчанию:
# file: Music
# owner: kris
# group: kris
# flags: ss-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
Я также изменил значение umask по умолчанию для своей учетной записи kris на 002 в.profile.
Не должны ли новые файлы и папки теперь использовать эти разрешения при записи в общую папку Samba? ACL должен работать с Samba из того, что я могу собрать.
В настоящее время, если я пишу в эту папку, используя мой Mac, папки получают 755, а файлы - 644. У меня есть другое приложение на моем Mac под названием GoodSync, которое может синхронизировать локальный каталог на моем Mac с сетевым ресурсом samba, но эти разрешения еще хуже. файлы пишутся как 700 с использованием этой программы.
Похоже, что Samba позволяет хосту / программе определять права доступа к папке / файлу.
Какие изменения мне нужно внести, чтобы принудительно установить необходимые разрешения, независимо от того, что хост пытается записать на сервер?
4 ответа
SAMBA/UMASK
Запуск Ubuntu 14.04, samba Версия 4.1.6-Ubuntu. Ранее я использовал Fedora 16/samba3, и все было в порядке. С Ubuntu / samba4 я не мог заставить Samba установить бит записи группы в каталогах.
Параметры smb.conf (для тестирования) включены:
create mask = 700 # The file AND mask
force create mode = 775 # The file OR mask
directory mask = 700 # Directory AND mask
force directory mode = 777 # Directory OR mask
Из клиента Windows 7 я мог создавать файлы с режимом =775, но у созданных каталогов всегда был режим 755.
Проблема в том, что по умолчанию "UMASK 022" в моем личном логине используется для доступа к общим каталогам. Отредактировал /etc/login.defs и изменил "UMASK 022" на "UMASK 002". Перезагрузился, и теперь каталоги, созданные из клиента Windows 7, имеют режим =775. Я не верю, что это было то же поведение, что и мои предыдущие настройки (Fedora/Samba3).
Интересно, что параметр smb.conf "наследовать права доступа = да" сработал. Этот параметр заменяет предыдущие параметры. С родительским каталогом, имеющим mode=2777, созданные подкаталоги имели mode=766 (биты выполнения не были установлены), а файлы имели mode=755 (биты записи группы / гостя не были установлены).
Взаимодействие и взаимозависимость Samba/UMASK должны быть задокументированы.
Наконец-то понял это.
Вам нужно изменить файл /etc/samba/smb.conf. Для своей папки "Музыка" я добавил следующие параметры:
create mask = 664
force create mode = 664
security mask = 664
force security mode = 664
directory mask = 2775
force directory mode = 2775
directory security mask = 2775
force directory security mode = 2775
Я не уверен, кто из них на самом деле исправил проблему, но теперь пишет правильные разрешения при совместном использовании через Samba. Я думаю, что используется команда "force", так как Mac, вероятно, пытается навязать свои собственные права на общий ресурс (и теперь Ubuntu форсирует свои собственные разрешения вместо того, чтобы принимать мои Mac). Надеюсь, это поможет кому-то!
Следующие записи работали для меня:
force security mode = 664
force directory security mode = 775
Одна простая заметка. Ищите параметр "подчиняться ограничениям pam". По умолчанию это OFF или NO или FALSE, но если он включен явно, и umask вступает в силу! Я потерял около недели, пытаясь выяснить, почему мои файлы, созданные с разрешениями 744, независимо от режима принудительного создания 666 или 777... Проблема была в том, что этот параметр включен, и я не могу вспомнить, почему я это сделал. ВЫКЛЮЧЕНИЕ решило проблему rw-vs-ro