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

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

17
задан 23 January 2012 в 00:20

5 ответов

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

# 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

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

, необходимо будет прокрутить немного вниз для тех опций.

В основном, короче говоря полномочия окон не являются тем же как Unix (Linux), и это немного нечетно, как самба отображает полномочия.

18
ответ дан 23 January 2012 в 00:20

После большого метода проб и ошибок это - корректный код для совместного использования dir самбы с помощью групп Unix и SGID. Если пользователь соединяется анонимно, он получает r/o, если он входит в систему и является членом присвоенной группы, он получает r/w.

у меня есть группа, названная 'администраторским' набором как основная группа пользователям с полномочиями записи, все остальные получают права только для чтения.

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

я установил chmod 2755 на общем каталоге, таким образом, это наследовало созданные каталоги с той же группой 'администратор'

$ 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 неправильных директивы, таким образом, я совместно использую зафиксированную конфигурацию здесь. В самбе, чем меньше директив Вы определяете, тем лучше она работает.

8
ответ дан 23 January 2012 в 00:20

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

[global]

unix extensions = no

И подключение с smb://<serverhost> вместо cifs://<serverhost>.

2
ответ дан 23 January 2012 в 11:20

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

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

единственная опция, которая работала, находилась под [глобальным] разделом или разделом доли:

 inherit permissions = yes

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

6
ответ дан 23 January 2012 в 11:20
 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
0
ответ дан 14 September 2019 в 15:58

Другие вопросы по тегам:

Похожие вопросы: