Друзья, доброго времени! Создание сетевых ресурсов   и организация общего доступа к ним – рутинный навык системных администраторов. Сегодня будем учиться делать это в линукс астра.

Процесc сильно отличается от того, что мы видим в обычно в Windows и новичкам  порой нелегко быстро разобраться. Но результат – безопасная и ясная настройка доступа. Приступим к изучению samba – файлового сервера.

Тонкости SAMBA  обязательно нужно знать и начнем с  общих папок. Предлагаю начать с создания  настроек samba с нуля . В дальнейшем легче будет постигать  более сложные настройки которые предоставляют разработчики. Итак..

Как предоставить общий доступ из Windows к сетевой папке на Linux по логину и паролю?

Установили Линукс  в качестве сервера и хотели привычно открыть доступ к его сетевым папкам для компьютеров сети Windows. А в папку не попасть?

Давайте разбираться. Для начала текущий конфигурационный файл с настройками скопируем куда нибудь в другое место (еще пригодится),а вместо него создадим пустой и настроим его  нуля самостоятельно.

Вызовем терминал (Alt+t). Запустим Midnight Commander с наивысшими правами:

 sudo mc 

..найдем файл smb.conf в папке /etc/samba/smb.conf и  переместим его в другую папку, например в /tls того же каталога:

Вместо него  создадим его пустой аналог c помощью команды “touch”:

 sudo touch /etc/samba/smb.conf 

Чуть позже  начнем наполнять его настройками; сейчас сначала добавим пользователей файлового сервера samba. В нашем примере имя пользователя самба должно совпадать с именем учетной записи пользователя Линукс. А пароль не должен совпадать с паролем учетной записи. Добавим:

 sudo smbpasswd -a superuser 

Чтобы удалить пароль, введите:

 sudo smbpasswd -n superuser 

Активируем созданного пользователя samba:

 smbpasswd -e superuser 
  • где superuser имя  пользователя samba.

Теперь займемся непосредственно созданием сетевой папки. Задача – создать доступный администратору ресурс  по логину и паролю, в который можно попасть с любого компьютера . Создадим папку soft:

 sudo mkdir /media/soft 

Обязательно сменим владельца и группу  (папка создана в корневой файловой системе) на superuser:

 sudo chown superuser:superuser /media/soft 

Предоставим полные права  созданной папке ее новому хозяину:

 sudochmod  777 /media/soft 

Далее, начнем  заполнять наш конфигурационный файл в текстовом редакторе;  откроем его программой  kate (с наивысшими правами):

 sudo kate /etc/samba/smb.conf 

В файл конфигурации необходимо корректно вносить информацию, соблюдая пробелы:

Конфигурационный файл принято разбивать на секции. Каждая секция начинается с квадратных скобок. Глобальная секция содержит настройки касающиеся режимов работы файлового сервера.  И влияет на все что ниже. Имя  нашего общего ресурса – это следующая секция и т.д. Для нашей задачи настройки будут такими:

[global] workgroup = office
server string = server Астра Линукс 2,12 Орел
interfaces = 127.0.0.0/8, 192.168.1.2/24, 192.168.1.3/24

map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
panic action = /usr/share/samba/panic-action %d
security = user
usershare allow guests = yes

# Сетевая папка для админа

[soft] comment = пользовательский прикладной софт
path = /media/soft
create mask = 0775
directory mask = 0775
read only = no
browseable = yes
guest only = no
public = yes
valid users = admin, superuser
writeable = yes

Дополнительно в свойствах созданной папки можно менять  “дискреционные атрибуты” на просмотр, запись и исполнение  и смотреть потом, как это влияет на доступ:

Сохраняем содержимое; теперь нужно перезапустить сервисы samba, чтобы изменения вступили в силу:

 sudo service smbd restart   sudo service nmbd restart 

Множественное подключение к серверу или разделяемым ресурсам одним пользователем с использованием более одного имени пользователя не разрешено – как исправить ошибку (samba)?

При попытке зайти в папку по сети с другого компьютера возникает эта  ошибка. Чтобы ее обойти нужно  создать на компьютере с Линукс астра  нового пользователя системы , например:

 sudo adduser admin 

Можно  добавить нового пользователя Линукс Астра и  через “панель управления”, там нагляднее:

Далее создать нового пользователя сервера samba под тем же именем:

 sudo smbpasswd -a admih 

Включить (активировать) его:

 sudo smbpasswd -e admih 

В конфигурационном файле smb.conf  подправить параметр “valid users = superuser, admin“,   рестарт служб самбы.   Далее, проверяем настройки файла hosts на  сервере..:

 sudo kate /etc/hosts 

… прописsdftv туда имя компьютера (хоста) на соответствие локальному хосту или назначенный ему локальный IP адрес:

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

В компьютере с Windows вбиваем в проводник имя компьютера \\homeastra\soft , вводим имя пользователя  и пароль. Можно для автоматического подключения при загрузке подключить нашу папку в качестве сетевого диска:

Если из Windows не удается настроить подключение из за непонятных глюков  чистим сетевой кеш в windows,  так, как это рассказано здесь.

Как предоставить анонимный доступ к  общей сетевой папке samba линукс из сети Windows?

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

Сначала создадим гостевую папку для общего доступа:

 mkdir /media/gostevaya 

Выясним ее реальное расположение. Обратите внимание –   наша общая папка опять создана не в домашнем каталоге пользователя, а в файловой системе, это важно:

 realpath gostevaya 

Нужно изменить владельца папки на nobody и назначить соответствующую группу nogroup. По умолчанию самба воспринимает эти имена как гостевые. Один из способов команда chown:

 sudo chown nobody:nogroup /media/gostevaya 

и командой chmod  предоставим полные права на  содержимое :

 sudo chmod 777 /media/gostevaya 

Теперь в настройках файла smb.conf создаем еще одну секцию [gostevaya] со следующими параметрами..:

global] workgroup = office
server string = server ????? ?????? 2,12 ????
netbios aliases = s800 s801 s802 s803
interfaces = 127.0.0.0/8, 192.168.1.4/24, 192.168.1.5./24
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
panic action = /usr/share/samba/panic-action %d
security = user
usershare allow guests = yes

[gostevaya] comment = публичная папка
path = /media/gostevaya
read only = no
guest ok = yes
browseable = yes

[soft] comment = папка с софтом
path = /media/soft
create mask = 0775
directory mask = 0775
read only = no
browseable = yes
guest only = no
public = yes
valid users = admin,superuser
writeable = yes

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

Как отключить ввод пароля для разблокирования связки ключей “Основная” при подключении сетевой папки?

При взаимодействии с сетью Windows (а так же при запуске приложений  Skype и других) Astra Linux каждый раз будет требовать ввода пароля для проверки легальности запуска того или иного потенциально опасного приложения. В качестве такой проверки нужно каждый раз вводить пароль.

Есть возможность отключить эту функцию, или сделать ее использование более удобным. Для этого потребуется пакет “Морская лошадь”. Установим его:

 sudo apt install seahorse 

Запуск – команда из терминала

 seahorse 

Теперь можно проверять доступ к папке из Windows;  даже если система спросит пароль – ничего не вводите, должна пустить.

Как увидеть и подключить общую  сетевую папку Windows в Линукс Астра?

Если samba установлен, то можно вывести список ВСЕХ общих  папок командой в терминале:

 sudo smbtree -N 

либо СПИСОК открытых ресурсов на какой либо конкретной станции в сети:

 sudo smbclient -L \\homeastra -n (если вход без пароля)
 sudo smbclient -L \\homeastra -u username  (если вход по паролю)

В графическом режиме через файловый менеджер  можно найти нужную станцию и посмотреть ее общие ресурсы. Если  настройки сетевого доступа по паролю – нужно ввести имя и пароль:

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

Как  настроить автоматические монтирование  сетевой  папки в Астра Линукс?

Обычно команда для монтирования сетевой папки выглядит так (с паролем):
 sudo mount -t cifs -o username=Иван,password=123,uid=1000,iocharset=utf8 //192.168.1.22/Сетевая папка /media/22 
  • где  sudo mount команда на монтирование;
  •  -t cifs команада монтирования файловой системы (пакет cifs установлен по умолчанию в Астра Линукс);
  •  -o включаем  доп.опции монтирования;
  •  username, password имя пользователя и  его пароль (владелец папки);
  • uid 1000  – опция делает владельцем папки текущего пользователя линукс;
  • указание кодировки iocharset=utf8 помогает “понимать” русские символы в имени файлов и папок;
  • //192.168.1.22 адрес компьютера в сети или его имя;
  • /media/22 точка монтирования, в конечной папке “22”

Чтобы избежать ошибки BAD UNC при монтировании, перед IP адресом или именем компьютера обязательно должна быть двойная косая черта!

Далее,  надо сделать автоматическое монтирование сетевой папки при загрузке . Для этого размонтируем пока нашу шару:

 sudo umount  /media/mar 

И внесем изменения в файл /etc/fstab. Данные пользователей и пароли принято прятать. Файл fstab может открыть посторонний и легко получить пароли  других компьютеров. Нужно создать текстовый файл samba22

 sudo kate /samba22 

и записать туда  имя пользователя компьютера и его пароль в следующем виде, сохранить файл:

 username=Иван   password=123 

Узнаем путь до файла:

 realpath samba22 

В моем примере файл находится в папке home/superuser/samba22

Изменим права на файл samba22, чтобы другие пользователи не могли его просматривать и изменять:

 sudo chmod 600 /home/superuser/samba22 

теперь можно безопасно  использовать содержимое нашего файла samba22 в команде следующего вида:

//192.168.1.22/Сетевая папка /media/22 cifs credentials=/home/superuser/samba22,uid=1000,iocharset=utf8,nofail 0 0

Откроем на редактирование файл /etc/fstab

 sudo kate /etc/fstab 

И вставим нашу строку в этот файл. После внесенных изменений выполним команду:

 sudo mount -a 

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

Вот и все на сегодня. В одной небольшой статье не охватить все тонкости настроек общих принтеров и папок. Для справки планирую перевод документации по samba в нескольких статьях на блоге! Удачи!

1 комментарий для “Как создать сетевую папку на Linux Астра чтобы был доступ из сети Winows или Линукс?

  1. К сожалению описанная инструкция не работает для виндовс 10.
    открыть доту к папке в астра линукс не получилось (

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.