Samba в GNOME: доступ к файлам в локальной сети
В Linux доступ к файлам по сети обычно осуществляется через службу Samba - она совместима с Windows, что очень удобно.
В качестве альтернативы для редкой переброски отдельных файлов и каталогов можно использовать LocalSend: он совместим с Android / iOS / MacOS / Windows, что также очень удобно.
Далее рассмотрим кратчайший возможный путь настройки Samba на примере Debian 13 (Trixie) со средой рабочего стола GNOME, чтобы при его использовании не возникало проблем с именами пользователей и разрешениями, но в то же время не было "всем всё можно".
В следующих инструкциях везде заменяйте USER и GROUP на ваше имя пользователя и вашу группу (обычно совпадает с именем пользователя). Также обратите внимание, что в файле /etc/samba/smb.conf всё разделено на разделы, каждый из которых начинается с его имени в квадратных скобках.
С правами root:
- Установить пакеты: samba nautilus-share gvfs-fuse
- В файле /etc/samba/smb.conf в раздел [global] (он находится в самом начале файла) добавьте:
force user = USER
force group = GROUP - Там же удалите целиком весь раздел [homes] (он находится ближе к концу файла).
- Добавьте себя в группу sambashare: usermod -G sambashare USER
- Создайте системного пользователя с именем samba: useradd -rM -s /usr/sbin/nologin samba
- Добавьте пользователя samba в базу данных Samba: smbpasswd -a samba (укажите пароль, который будет использоваться для доступа по сети к вашему компьютеру)
- Перезапустите Samba: systemctl restart smbd
- Перелогиньтесь
Если вам нужно, чтобы ваш компьютер был доступен из Windows 10+:
- Дополнительно установите пакет wsdd2
- В файле /etc/samba/smb.conf в раздел [global] добавьте:
ntlm auth = yes
server min protocol = SMB2
client min protocol = SMB2 - Перезапустите Samba: systemctl restart smbd
Всё. Теперь можно разделять доступ прямо из Файлов (нажимайте правой кнопкой на каталоге). Для доступа с других компьютеров нужно будет указывать имя пользователя samba, но локально все файлы будут принадлежать вашему пользователю, как если бы были созданы вами (т.е. в стиле Windows).
В приложениях созданных под GTK сетевые пути можно открывать напрямую, а для Qt нужно сначала открыть нужный сетевой путь в Файлах, чтобы он примонтировался, а затем уже в приложении зайти в каталог /run/user/1000/gvfs. 1000 - это ваш UID (идентификатор пользователя), он может быть другим (1001, 1002 и т.д.), если исторически ваш пользователь в этой системе уже не первый.
Не забывайте про возможность создания закладок, ведущих на /run/user/1000/gvfs или на часто используемый сетевой путь.
Чтобы сетевые точки монтирования, созданные Файлами были доступны из приложений flatpak, с нужно добавить в глобальные разрешения для файловой системы строку xdg-run/gvfs с помощью Flatseal или в терминале: flatpak --user override --filesystem=xdg-run/gvfs
efenstor.net