Я не можу отримати самбу для встановлення належних дозволів на створені каталоги


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

Я перевірив додавання та видалення маски каталогів, режиму примусового каталогу, режиму безпеки каталогів та режиму безпеки каталогу каталогів, але поведінка все ще залишається. Новостворені файли та папки не мають призначеного дозволу 774, а відповідно 764 та 754 відповідно.

Що я пропускаю? Чому самба не встановить правильні дозволи?

Відповіді:


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

Я шукав приємного пояснення того, як працюють ці налаштування, але не зміг знайти нічого кращого, ніж людина smb.conf

Для цих параметрів вам доведеться трохи прокрутити вниз.

Взагалі кажучи, дозволи Windows не є такими ж, як unix (linux), і трохи дивно, як самба відображає дозволи.


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

Ви встановили всі варіанти, які я вам дав? Якщо це так, будь ласка, оновіть своє перше повідомлення і в цей момент я б запропонував вам подати звіт про помилку.
Пантера

1
Він уже говорив .. але при більш детальному огляді та тестуванні, додаючи 2 до масок каталогу, виправили проблему. Велике дякую. : D
Заз

Фантастично, дякую, що позначили це як прийняту відповідь, це допомагає іншим із подібною проблемою.
Пантера

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

8

Після безлічі спроб і помилок, це правильний код для спільного використання samba dir за допомогою SGID та unix груп. Якщо користувач підключається анонімно, він отримує r / o, якщо він входить і є членом призначеної групи, він отримує r / w.

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


7

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

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

Єдиний варіант, який працював, був у розділі [глобальний] або спільний доступ:

 inherit permissions = yes

Просто змініть усі дозволи для папок і файлів на свої потреби, щоб майбутні папки та файли успадкували ті ж дозволи.


Я використовую Samba версії 4.7.6-Ubuntu. І це теж працює для мене.
Анді С.

правдива відповідь 4.8.11на freebsd, теж :)
тремтіння

Простий та ідеальний 18.04.3
Меррітт

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.