Как заставить определенные разрешения для новых файлов / папок на файловом сервере Linux?

14

У меня проблема с моей установкой Ubuntu 9.10 (файловый сервер) и разрешений для samba. Вход и чтение работает нормально. Однако создание новых каталогов пользователями ограничивает доступ для других пользователей. Например, если Боб (пользователь Windows, который сопоставляет диск) создает папку в каталоге, Джейн (пользователь Mac, который просто монтирует smb) может читать из нее, но не может писать в нее - и наоборот. Затем я должен пойти в каталог CHMOD 777, чтобы все были счастливы. Я попытался отредактировать параметры «create / directory mask» и «force» в файле smb.conf, но, похоже, это не помогло.

Я собираюсь прибегнуть к CRONTABing рекурсивной подпрограмме chmod, хотя я уверен, что это не исправить. Как я могу получить все новые предметы, чтобы всегда быть 777? У кого-нибудь есть предложения, чтобы исправить эту постоянно возникающую ситуацию?

Лучший

humble_coder
источник
Группы пользователей и другие собственные права доступа, не chmod 777.
Warner

Ответы:

13

Обычно я использую встроенную функциональность SAMBA для управления разрешениями и группами на общих ресурсах. Например..

force user=user1
force group=sharedgroup
create mask=775

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

сигнализатор
источник
1
Тем не менее, в посте говорится, что он сделал это, и это не сработало ...
Мистирий
2
Тогда он сделал это неправильно. Оно работает.
Уорнер
Я не уверен, что случилось. Я пробовал это вручную и через Webmin безрезультатно. Возможно, мой групповой выбор группы неверен? Я пытался использовать «пользователей», а также различные группы, созданные вручную, все из которых были сделаны членами. Независимо от того, что я делаю, пользователи не могут манипулировать тем, что сами не размещают. Единственное «решение» - это чтобы все пользователи входили в систему (или монтировали) как GUEST, что приводило к путанице.
humble_coder
SAMBA использует комбинацию разрешений и настроек файловой системы в конфигурации. Если пользователям не write listразрешено или иным образом разрешено писать в конфигурации общего ресурса, это не будет работать. Если пользователь, на котором работает SAMBA, не может получить доступ к каталогам, он не будет работать. Пользователи должны быть членами соответствующей группы, каталоги и файлы должны принадлежать этой группе, и для группы должен быть установлен бит записи. Вы также можете проверить журналы SAMBA.
Уорнер
2
Я долго искал это! Благодарность! :) Работает как положено.
Надя
2

Установите права доступа к каталогу 2777, например так:

chmod 2777 /shared/dir

Это заставляет все файлы и папки в каталоге «/ shared / dir» наследовать разрешения верхнего каталога, в данном случае 777.

Затем сделайте это, чтобы убедиться, что все файлы имеют соответствующие разрешения:

chmod -R 777 /shared/dir
Mistiry
источник
О единственной ситуации, когда общедоступные записи приемлемы, является /tmp.
Уорнер
1
Да, вероятно, лучше использовать 774 или даже 770, в зависимости от ситуации. Но он спросил, как сделать их всех «777», поэтому я просто использовал это в своем примере.
Мистери
3
Да, но как я могу гарантировать, что все будущие файлы, скопированные в этот каталог по сети, получат одинаковые разрешения независимо от их начальных разрешений? У меня нет проблем, когда я делаю это вручную, я просто хочу, чтобы это было автоматизировано.
humble_coder
2
Это не работает. Флаг setgid для папок устанавливает группу новых файлов и папок, а не разрешений, и постоянное выполнение chmod недопустимо. Мне нужно решение, не связанное с samba, для Steam в Linux, чтобы я мог делиться библиотекой между пользователями.
Сэм Уоткинс
2

Я понимаю, что это старый вопрос, но недавно у меня была похожая проблема, и вот как я ее решил:

[доля]
защитная маска = 0770
создать маску = 0770
режим принудительного создания = 0660
комментарий = доля Samba для ИТ
путь = / рейд / поделиться
просматриваемый = ДА
гость хорошо = нет
список записи = root, @ "ДОМЕН + it_nfs"
принудительная группа = DOMAIN + it_nfs

Это гарантирует, что пользователи должны быть в группе безопасности «it_nfs» в AD, все файлы будут записаны с группой «it_nfs», а все файлы будут записаны как минимум с 0660 и не более 0770 разрешений. Принудительное использование идентификатора группы гарантирует, что любой пользователь в этой группе сможет читать / записывать файлы в общем ресурсе. В противном случае вы столкнетесь с ситуациями, когда файл, написанный как bob: bob, не может быть записан charlie: charlie, даже если оба они находятся в "it_nfs".

Evan
источник
0

Судя по комментариям принятого ответа, он на самом деле не решил проблему ОП, равно как и другие ответы, если ОП столкнулся с той же проблемой, что и я:

Наличие общего ресурса в разделе NTFS / FAT.

Помните об этом при подключении вашего настольного диска к NAS для совместного использования ваших семейных альбомов: fs смонтировать параметры для пользователя, группы, режима создания и т. Д. Переопределить все, что настроено для Samba! ;)

(Например, в моем случае, независимо от того, smb.confчто все было создано root, с помощью 777- в соответствии с fstab defaultsдля монтирования предохранителя NTFS ...)

Sz.
источник