Настройка Samba в Astra Linux
Настройка сервера Samba в Astra Linux 1.8 для доступа к файлам в локальной сети.
Откроем терминал и обновим список пакетов:
sudo apt updateBashУстановим необходимые пакеты для работы Samba из репозитория дистрибутива:
sudo apt install samba samba-commonBashДля работы в сети мне необходимы две сетевые папки: одна с доступом на запись, другая — только для чтения. Также я настрою гостевой доступ к своим сетевым ресурсам, чтобы любой пользователь сети мог к ним подключиться, не имея на моём компьютере учётной записи.
Для начала создадим нужные директории. Папка classwork будет с возможностью записи, а readme — доступна только для чтения.
Создаём папку classwork внутри /srv/samba:
sudo mkdir -p /srv/samba/classworkBashТеперь изменим владельца директории на пользователя nobody, а группу на nogroup. Это специальные непривилегированные учётные записи, которые используются для запуска процессов и доступа к файлам с минимальными правами:
sudo chown nobody:nogroup /srv/samba/classworkBashИзменим права доступа к директории и файлам в ней на 0777. Это разрешит читать и писать в эту папку всем пользователям системы:
sudo chmod 0777 /srv/samba/classworkBashАналогично поступим с папкой readme:
sudo mkdir -p /srv/samba/readmeBashИзменим для неё владельца и группу:
sudo chown nobody:nogroup /srv/samba/readmeBashЗададим также права доступа к папке, чтобы любой локальный пользователь мог записывать туда файлы. Однако через сеть эта директория будет доступна только для чтения:
sudo chmod 0777 /srv/samba/readmeBashТеперь перейдём к настройке самого сервера Samba. Для начала сделаем резервную копию конфигурационного файла smb.conf:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backupBashОткроем файл smb.conf для редактирования:
sudo nano /etc/samba/smb.confBashВ конфигурационном файле нужно найти секцию [global] и внести в неё правки. Но я поступаю проще: удаляю всё содержимое и добавляю только нужные мне параметры.
В самом начале файла записываем следующие строки:
[global]
workgroup = WORKGROUP
server string = SchoolServer7 Share
security = user
map to guest = Bad User
guest account = nobodyBashРассмотрим, что означают записанные параметры:
workgroup— задаёт рабочую группуWindows, в которой будет находиться сервер.server string— описаниеSamba-сервера, которое он сообщает клиентам при подключении, чтобы они понимали, к какому компьютеру подключаются.security— указывает модель аутентификации на сервере. Значениеuserозначает, что она будет производиться по именам пользователей.map to guest— определяет, как работать с пользователями. ЗначениеBad Userозначает, что запросы от несуществующих пользователей будут обрабатываться как гостевые.guest account— какой Linux-пользователь будет использоваться для гостевых подключений (в нашем случае этоnobody).
Ниже указываем секции [classwork] и [readme] с настройками наших сетевых папок:
[classwork]
comment = Classwork (Read/Write)
path = /srv/samba/classwork
browseable = yes
read only = no
guest ok = yes
create mask = 0777
directory mask = 0777
force user = nobody
[readme]
comment = Readme (Read Only)
path = /srv/samba/readme
browseable = yes
read only = yes
guest ok = yes
force user = nobodyBashИмя каждого сетевого ресурса записывается в квадратных скобках [classwork]. Именно под этим названием папка будет видна в сетевом окружении: smb://IP_сервера/classwork. Затем идут свойства, задающие параметры работы каждой сетевой папки:
comment— текстовое описание (комментарий), которое отображается рядом с именем папки при просмотре сетевого окружения.path— абсолютный путь к реальной директории на файловой системе Linux-сервера, к которой мы открываем сетевой доступ.browseable— определяет, будет ли папка видима в общем списке доступных ресурсов при просмотре сети. Еслиyes— то будет видима, еслиno— то не будет видима, но всё равно будет доступна при обращении по полному пути.read only— указывает, будет ли папка доступна только для чтения. Если указаноyes, папка доступна только для чтения. Если указаноno, режим только для чтения отключается, и пользователи смогут создавать, изменять и удалять файлы в этой директории.guest ok— управление гостевым входом. Если указаноyes, гостевой доступ разрешён. Пользователи могут подключаться к этой папке без ввода логина и пароля.create mask— указывает, с какой маской прав доступа будут создаваться новые файлы в этой папке. Значение0777означаетrwxrwxrwx— полные права (чтение, запись, выполнение) для владельца, группы и всех остальных.directory mask— маска прав доступа для новых подпапок (директорий), создаваемых в этой сетевой папке.0777даёт полные права на них всем.force user— принудительно назначает системного пользователяnobodyвладельцем всех файлов и папок, создаваемых в этом ресурсе. Поскольку доступ гостевой (нет конкретного пользователяLinux), эта опция гарантирует, что все созданные файлы будут принадлежать одному системному пользователю, что предотвращает проблемы с правами доступа.
После сохранения конфигурационного файла Samba проверим его на наличие ошибок следующей командой:
testparmBashЕсли в выводе команды есть строка Loaded services file OK., значит, ошибок нет и можно перезапускать наш сервер. Если же были найдены ошибки, необходимо вернуться к редактированию файла конфигурации и устранить их.
Перезапустим Samba с новой конфигурацией:
sudo systemctl restart smbd nmbdBashДобавим сервер Samba в автозагрузку:
sudo systemctl enable smbd nmbdBashПосле этих действий настроим доступ к сетевым папкам с другого компьютера с установленной Astra Linux 1.8 и графическим окружением Fly.
Открываем Менеджер файлов. В меню Сеть выбираем Создать сетевое место.

В открывшемся окне в поле Название указываем имя для сетевой папки, под которым она сохранится в подключениях в разделе Сеть.
В поле Адрес прописываем путь к ресурсу. Обязательно указываем протокол, адрес компьютера и папку, к которой будем подключаться, в формате smb://ip_address/folder:
smb://10.42.195.99/classworkBashТакже в некоторых случаях вместо адреса можно указать имя компьютера (hostname):
smb://schoolserver/classworkBash
Далее для доступа нужно ввести учётные данные. Но так как у нас настроен гостевой вход, вводим имя пользователя guest и такой же пароль guest. После этого нажимаем Да, и связка логина и пароля сохраняется в системе. При следующем подключении вводить их не потребуется.

Для подключения с компьютеров под управлением Windows открываем Проводник и вводим адрес сервера в следующем формате:
\\10.42.195.99\classworkBashНачиная с Windows 10, Microsoft отключила «небезопасные гостевые входы» по умолчанию. При попытке зайти на сетевую папку (шару) без пароля Windows выдаст ошибку «Указан недопустимый идентификатор» или «Нет доступа», даже если на сервере всё настроено идеально. Можно попробовать вернуть гостевой доступ к сетевым папкам:
- Нажмите
Win + R, введитеgpedit.mscи нажмитеEnter. - Перейдите по пути: Конфигурация компьютера → Административные шаблоны → Сеть → Рабочая станция Lanman (Computer Configuration → Administrative Templates → Network → Lanman Workstation).
- Найдите параметр Включить небезопасные гостевые входы (Enable insecure guest logons).
- Дважды кликните по нему, выберите Включено (Enabled) и нажмите
ОК.
При включённом автоматическом входе в Astra Linux (графическая оболочка Fly) может возникнуть следующая проблема: Менеджер файлов при каждой попытке подключения к сетевому ресурсу будет запрашивать пароль для разблокировки хранилища ключей.

Дело в том, что при автоматическом входе пользователь не вводит свой пароль, из-за чего не разблокируется связка ключей (keyring), в которой хранятся учётные данные.
Можно каждый раз вводить пароль от учётной записи для разблокировки связки ключей, но есть и другие способы решения этой проблемы:
- Отключить автоматический вход в систему для пользователя.
- Создать новую связку ключей без пароля.
Поскольку по умолчанию связка ключей защищена паролем пользователя, мы удалим старую связку и создадим новую, но с пустым паролем.
⚠️ Внимание! Хранение паролей в связке ключей без пароля снижает безопасность системы. Используйте этот метод только в том случае, если вы понимаете риски и физическая безопасность вашего компьютера не вызывает опасений.
Остановим текущий демон связки ключей:
killall gnome-keyring-daemonBashУдалим старые файлы связки ключей:
rm -rf ~/.local/share/keyrings/*BashПосле этого перезагружаем компьютер. После загрузки откройте Менеджер файлов и попробуйте подключиться к сетевой папке, указав логин и пароль для доступа к ресурсу. В этот момент система сообщит, что связка ключей не создана, и предложит её создать. Соглашаемся. Когда система попросит ввести пароль для доступа к новой связке ключей, оставьте поле пустым и подтвердите действие.

После этого будет создана связка ключей с пустым паролем. Теперь при автоматическом входе в Fly связка будет разблокироваться автоматически, и Менеджер файлов перестанет запрашивать учётные данные для сетевых ресурсов.
Если же не получается подключиться удалённо к сетевым папкам, стоит проверить, не блокирует ли сетевой экран порты Samba.
Если используется ufw:
sudo ufw allow SambaBashЕсли используется iptables / astra-firewall:
sudo iptables -A INPUT -p tcp --dport 445 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 137:139 -j ACCEPTBashСлужба nmbd, отвечающая за отображение имени компьютера в сетевом окружении, устаревает и часто блокируется в современных Windows. Если вы подключаетесь по IP, но не видите сервер в списке «Сеть», установите службу обнаружения wsdd.
sudo apt install wsdd
sudo systemctl enable --now wsddBashЭто заставит ваш сервер корректно транслировать свое имя в современные сети Windows без использования устаревшего протокола NetBIOS.













