# Одна общая папка Samba, части пользователей запись, остальным чтение: valid users, write list и согласование с правами файловой системы

**URL:** <https://kryptos.forum/t/odna-obshhaya-papka-samba-chasti-polzovatelej-zapis-ostalnym-chtenie-valid-users-write-list-i-soglasovanie-s-pravami-fajlovoj-sistemy/263>\
**Category:** Виртуальные машины и серверы\
**Tags:** виртуальные-машины\
**Created:** [30.Сентябрь.2026 10:28:40 UTC](https://kryptos.forum/t/odna-obshhaya-papka-samba-chasti-polzovatelej-zapis-ostalnym-chtenie-valid-users-write-list-i-soglasovanie-s-pravami-fajlovoj-sistemy/263 "2026-09-30T10:28:40Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![team\_vm](https://kryptos.forum/letter_avatar_proxy/v4/letter/t/779978/32.png) [@team\_vm](https://kryptos.forum/u/team_vm)\
**Post date:** [30.Сентябрь.2026 10:28:41 UTC](https://kryptos.forum/t/odna-obshhaya-papka-samba-chasti-polzovatelej-zapis-ostalnym-chtenie-valid-users-write-list-i-soglasovanie-s-pravami-fajlovoj-sistemy/263/1 "2026-09-30T10:28:41Z")

</div>

**Что было.** Нужно раздать один каталог по SMB так, чтобы администратор и один пользователь могли писать, а остальные только читать. Администратор сделал две шары на один каталог с разными именами: неудобно и путает пользователей.

**Решение (подтверждено).** Одна секция в `smb.conf` с разграничением по спискам:

```auto
[projects]
   path = /srv/samba/projects
   valid users = admin, user1, @readers
   write list = admin, user1
   read only = yes
   create mask = 0664
   directory mask = 2775
   force group = projects

```

`read only = yes` делает шару по умолчанию только для чтения, `write list` перечисляет исключения; `@readers` подключает группу. `force group` и setgid в `directory mask` гарантируют, что созданные файлы принадлежат общей группе и читаемы всем. `testparm` проверяет синтаксис, `smbcontrol all reload-config` применяет без перезапуска.

**Права файловой системы обязательны.** Samba не может дать больше, чем позволяет ФС: каталог `/srv/samba/projects` должен принадлежать группе `projects` с правами `2775`, а пользователи из `write list` быть в этой группе (`usermod -aG projects user1`). Для читателей достаточно `r-x` для «остальных» или членства в группе с `read list`. Проверка от имени пользователя: `sudo -u user1 touch /srv/samba/projects/t && rm …`.

**Учётные записи Samba** отдельны от системных: `smbpasswd -a user1` после создания системного пользователя; отключённые системные пользователи всё равно должны существовать для сопоставления uid. Для ролей «только чтение» удобна отдельная группа; для гостевого чтения `guest ok = yes` с `map to guest = Bad User` в `[global]` (осторожно с сетями, где это недопустимо).

**Диагностика «пишет / не пишет».**

- `smbstatus` показывает, кто подключён и под каким пользователем (Windows иногда подставляет кэшированные учётные данные другого пользователя: `net use * /delete` на клиенте).
- Журнал `/var/log/samba/log.<клиент>` с `log level = 2`: отказы `NT_STATUS_ACCESS_DENIED` с указанием, ФС или списки.
- Клиенты Windows кэшируют права на сессию: после изменения `smb.conf` переподключить диск.

**Про две шары на один путь.** Работает, но ломает ссылки между файлами у пользователей, удваивает записи в проводнике и усложняет аудит. Один путь, одна шара, списки.

Параметры описаны в [документации Samba](https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html).
