LinuxForum.Fans
Тема

Права на уже существующие файлы в гостевом доступе к usershare в samba

Автор: ivanov17 4 сообщений 932 просмотров
25.09.2019 17:28 #432930

Понадобилось поднять samba для того, чтобы иметь возможность монтировать разные директории из своего домашнего каталога в гостевой машине с winXP.

Поскольку сейчас я пользуюсь MATE, поставил плагин для Caja, расшаривающий директории через usershare.
Мне показалось это удобным, поскольку так можно расшарить любую директорию, не копируя её в какую-то другую, не лазая в консоль, чтобы поправить конфиг и не делая прочих лишних движений.

Добавил в конфиг /etc/samba/smb.conf следующее:

text
        security = USER
        map to guest = Bad User
        usershare allow guests = Yes
        usershare max shares = 100
        usershare owner only = Yes
        usershare path = /var/lib/samba/usershare

Добавил своего пользователя и nobody в группу sambashare.

net usershare info показывает про расшаренные мышкой директории следующее:

text
[Dir]
path=/home/myuser/Shares/Dir
comment=Something
usershare_acl=Everyone:F,
guest_ok=y

То есть, галки в плагине для Caja работают.

Расшарив директорию, могу подключаться к ней как гость в гостевой системе и в Caja через smb://127.0.0.1/, создавать в ней файлы и директории от nobody:nobody и удалять их.

При этом не получается создать через samba директорию или файл в директории, уже существовавшей ранее внутри расшаренной. В системе она продолжает принадлежать моему системному пользователю, права на неё я не меняю. Однако, идея состоит в том, чтобы не делать никаких лишних телодвижений при расшаривании каталога через Caja. Просто подключать каталог в несколько кликов, а после работы с ним точно так же отключать.

По идее тут нужно добавить какой-то глобальный параметр, но пока что чтение документации не привело меня к просветлению на этот счёт. Я даже не могу сказать, могу ли я получить от samba то, что мне нужно.

Проще всего, наверное, было бы выставить guest user = myuser, но это кажется плохой практикой с т.з. безопасности.
Насколько я понимаю, маски прав влияют не на чтение уже существующих файлов самбой, а на создание новых.

В общем, вопрос заключается в том, можно ли заставить samba воспринимать каталоги, расшаренные в usershare, как принадлежащие, например, nobody:nobody без дополнительного изменения прав на эти каталоги в системе?

Или проще всё-таки не заморачиваться с usershare, а сделать отдельную постоянную шару?
Или же лучше вообще сразу смотреть в сторону NFS?

26.09.2019 14:20 #432934

Есть права доступа самой SAMBA шары.
А есть права на точку монтирования.
Это нужно учитывать.

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

26.09.2019 19:15 #432937
"mozgfx" написал:
Есть права доступа самой SAMBA шары.
А есть права на точку монтирования.
Это нужно учитывать.

Права на точку монтирования caja-share выставляет в 777, тут всё укладывается в мышекликательную парадигму.

"mozgfx" написал:
не всегда нужно править файлы руками чтобы все заработало

Как минимум, нужно было добавить строчки, которые касаются usershare.

С пакетом caja-share поставляется файл /etc/samba/caja-share-smb.conf.example, кторый содержит

text
[global]
workgroup =  #YOUR WORKGROUP HERE
security = share

usershare path = /var/lib/samba/usershare usershare max shares = 100 usershare allow guests = yes usershare owner only = yes guest account = #YOUR GUEST ACCOUNT

Другое дело, что

text
smbcontrol --version
Version 4.10.8

и значение share для security уже не работает.

Значение для guest account я не выставлял, потому что он по умолчанию nobody.

"mozgfx" написал:
В некоторых дистрибутивах иногда любят некоторые вещи реализовывать немного иначе чем в других.
Поэтому не зная какой дистрибутив у Вас сложно дать однозначные рекомендации.
text
cat /etc/fedora-release 
Fedora release 30 (Thirty)

Но не думаю, что это дистрибутивозависимая проблема.

Собственно, проблема исключительно с записью в гостевом доступе в директории, которые принадлежат myuser, а не созданы nobody.
Я понимаю, что можно открыть консоль и рекурсивно поменять группу, к примеру. Потом открыть её ещё раз и поменять обратно. Но с этими танцами пропадает смысл в монтировании рандомных папок из домашнего каталога в графическом режиме через usershare. Тогда проще сделать отдельную постоянную шару и работать с ней.

Мне интересно, можно ли заставить samba игнорировать принадлежность директории другому пользователю, или она так делать не умеет.

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

27.09.2019 14:21 #432944
ivanov17 написал:

Или проще всё-таки не заморачиваться с usershare, а сделать отдельную постоянную шару?

Это делается, примерно так типа обезличенный доступ:
https://www.server-world.info/en/note?os=Fedora_30&p=samba&f=1
или так но уже с правами:
https://www.server-world.info/en/note?os=Fedora_30&p=samba&f=2

Войдите или зарегистрируйтесь, чтобы ответить.