Я не могу получить Samba, чтобы установить надлежащие разрешения для созданных каталогов


17

У меня есть сервер 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 не устанавливает правильные разрешения?

Ответы:


19

Я думаю, вам нужно использовать следующие параметры:

# I changes the permissions to rw-rw-r--
# You should be able to change them to 775 if you need the files to
# be executable
create mask = 664
force create mode = 664
security mask = 664
force security mode = 664

# I set the SGID flag here as I thought this is what you wanted
# You could change to 0775
directory mask = 2775
force directory mode = 2775
directory security mask = 2775
force directory security mode = 2775

Я искал хорошее объяснение того, как работают эти настройки, но не смог найти ничего лучше, чем man smb.conf

Вам придется прокрутить немного вниз для этих вариантов.

По сути, разрешения Windows не совпадают с разрешениями unix (linux), и немного странно, как samba отображает разрешения.


1
Да, похоже, это примерно та же страница руководства, что и на samba.org/samba/docs/man/manpages-3/smb.conf.5.html, на которую я смотрел. Проблема в том, что неважно, какой восьмеричный значения, которые я установил, я все еще получаю те же разрешения, установленные для созданного файла или папки.
Заз

Вы установили все параметры, которые я вам дал? Если это так, пожалуйста, обновите свой первый пост, и в этот момент я бы предложил вам отправить сообщение об ошибке.
Пантера

1
Уже сказано ... но при ближайшем рассмотрении и тестировании добавление 2 к маскам каталогов решило проблему. Большое спасибо. : D
Zaz

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

Конфигурация Samba слишком сложна и очень сложна для понимания. Например, в чем логическая разница между силой создавать и просто создавать ... не имеет смысла. Ваш намек спасает жизнь, хотя - спасибо!
Матиас Гринишак,

8

После многих проб и ошибок, это правильный код для совместного использования samba dir с использованием групп SGID и unix. Если пользователь подключается анонимно, он получает права доступа, если он входит в систему и является членом назначенной группы, он получает права доступа.

У меня есть группа с именем «admin», установленная в качестве основной группы для пользователей с правами на запись, все остальные получают права только на чтение.

Я никому не навязываю пользователей, поэтому разные люди, работающие над одними и теми же файлами, не мешают друг другу.

Я установил chmod 2755 в общий каталог, чтобы он наследовал созданные каталоги с той же группой «admin»

$ chmod -R 2755 /home/shares/test

Проверка, все ли хорошо:

$ stat /home/shares/test
Access: (2755/drwxr-sr-x)  Uid: (65534/  nobody)   Gid: ( 1001/   admin)

Соответствующая часть /etc/samba/smb.conf:

[test]
        comment = test
        path = /home/shares/test
        force user = nobody
        read only = No
        create mask = 0664
        force create mode = 0664
        directory mask = 02775
        force directory mode = 02775

Этот пост направил меня в нужное русло, но testparm выявил 4 неверные директивы, поэтому я поделился здесь фиксированной конфигурацией. В samba, чем меньше указаний вы указываете, тем лучше он работает.


6

У меня была та же проблема, но все, как директивы маски , не работало для меня (Samba 4.3.11):

 create mask = 0664
 force create mode = 0664
 directory mask = 02775
 force directory mode = 02775

Единственная работающая опция была в разделе [global] или share:

 inherit permissions = yes

Просто измените все разрешения для папок и файлов по своему усмотрению, чтобы будущие папки и файлы наследовали те же разрешения.


Я использую Samba версии 4.7.6-Ubuntu. И это работает для меня тоже.
Анди С.

истинный ответ на 4.8.11на freebsdтоже :)
джиттера

3

При подключении с других устройств Unix / Linux / OSX / MacOS возникает очень похожая проблема: все параметры игнорируются, если вы не укажете

[global]

unix extensions = no

И связаться с smb://<serverhost>вместо cifs://<serverhost>.


0
 Here add this code to the sudo nano smb.conf
 and restart sudo service smbd restart  and access from another local PC/computer using connect with smb://<serverhost>  to create or edit files/folder   html is folder name 

 [html]
   comment = admin access
   path = /var/www/html
   browsable = yes
   guest ok = no
   writable = yes
   valid users = @admin
   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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.