16 июня 2024 г.

Получается, что у 10-й платформы АльтЛинукса репозитарий один на все дистрибутивы, только набор программного обеспечения разный. Т.е. можно на текущий дистрибутив спокойно установить не устанавливаемое по умолчанию ПО. Только нужно точно знать, что требуется. И документация тоже подходит. Подходящий пример: установка на сервер виртуализации не типичной для него роли файлового сервера. И документация по серверу виртуализации в этом деле не поможет. Зато отлично подойдет документация по Альт Линукс Сервер 10. На текущий момент актуальной версией является версия 10.2.

Читаем и делаем: https://docs.altlinux.org/ru-RU/alt-server/10.2/html/alt-server/protocol.html

Ниже подробно разберем настройку доступности по сети для новой папки "NET", созданной по пути "/var" как для клиентов на ОС Линукс, так и для клиентов на ОС Виндовс.

Считаем, что сервер виртуализации уже установлен. Если нет, то можно воспользоваться пошаговой инструкцией по установке: АльтЛинукс Сервер виртуализации10.1 (Proxmox)

Для клиентов Линукс необходимо установить, настроить и запустить NFS-сервер

Для клиентов Виндовс необходимо установить, настроить и запустить Samba-сервер (SMB, если кратко)

Обычно Линукс умеет подключаться к серверу Samba, но, считаю, что лучше использовать родной протокол.

Создаем папку /var/NET

Первым делом нужно создать папку, которую планируется сделать доступной по сети. В нашем случае требуются права суперпользователя. Поэтому запускаем терминал, пишем "su - " вводим пароль root и набираем команду "mc" для запуска "Midnight Commander":

Осталось нажать ENTER
Осталось нажать ENTER

В открывшемся миднайт командере переходим в папку /var и нажимаем F7 в появившемся окне вводим "NET" и нажимаем ENTER два раза. См. скрин ниже:

Осталось только согласиться с выбором
Осталось только согласиться с выбором

И тут же выдаем на эту папку права всем через меню MC. На меню можно переключиться мышью или с помощью клавиши F9. "Файл" - > "Права (расширенные)" в русском mc или "File" -> "Advanced chown" в английском. См. скрин ниже:

Где через меню mc можно поменять права на папку. Русский и английский интерфейс
Где через меню mc можно поменять права на папку. Русский и английский интерфейс

Выставляем в "другие" значение "rwx" и "установить" ("other" в "rwx", и "Set" для английского):

Выдаем всем права на папку
Выдаем всем права на папку

Важно это не забыть.

Hidden text

Так, создав с правами суперпользователя папку и настроив сервисы сетевого доступа к файлам, я довольно долго не мог понять, почему из сети регистрируюсь, в папку захожу, а ничего записать в неё не получается. Получаю ошибку о недостаточности прав. Пытался и из Линукс и из Виндовс. Искал проблему в файлах конфигурации сервисов NFS и SMB. А, оказывается, нет прав на папку в локальной файловой системе.

Знатокам командной строки, конечно, создание папки и выдачу на неё прав сделать быстрее.

Нажав CTRL+o можно временно скрыть панели mc, повторное нажатие CTRL+o вернет панели. Клавиша F10 закроет командер совсем. Для его запуска надо будет набирать mc.

NFS

Переходим в терминал и под суперпользователем устанавливаем пакет nfs-server:

apt-get install nfs-server

После установки nfs-сервера следует отредактировать файл /etc/exports. В mc есть встроенный редактор, с помощью которого и можно внести изменения в файл. Для этого нужно переместить курсор на нужный файл и нажать клавишу F4. Для вставки можно использовать комбинацию клавишу SHIFT+Insert (Ctrl+C - в нем не работает)

Моё содержимое файла /etc/exports:

# See also /etc/sysconfig/rpcbind (control rpcbind).
/var/NET 192.168.1.0/24(rw,subtree_check)

Где первая строка - комментарий, т.к. начинается с символа "#". Во второй строке указано, что папка /var/NET для всех подключений из подсети 192.168.1. доступна для всего набора манипуляций с файлами (чтение, запись, выполнение)

Теперь дадим команду запустить NFS-сервер и включим его по умолчанию:

systemctl enable --now nfs

SMB

Переходим в терминал и под суперпользователем устанавливаем пакет samba:

apt-get install samba

После установки следует отредактировать файл /etc/samba/smb.conf. Я добавил в него раздел "NET" и предоставил доступ пользователю "vvk". В файле это выглядит следующим образом:

[NET]
	comment = NET
	path = /var/NET
	public = yes
	browseable = yes
	read only = no
	writable = yes
	valid users = vvk
	quest ok = no
	

Также есть тут заморочки с пользователями. Лучше официальной документации не скажешь: Samba использует отдельную от системной базу данных пользователей. Для возможности доступа пользователя к папке (если запрещен гостевой доступ) необходимо внести его в базу данных Samba и установить пароль для доступа к общим ресурсам (он может совпадать с основным паролем пользователя). Следует учитывать, что в базу данных Samba можно добавлять только тех пользователей, которые уже есть в системе. Добавить пользователя в базу данных Samba можно, выполнив команду (должен быть установлен пакет samba-common-client): "smbpasswd -a <имя_пользователя>"

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

smbpasswd -a vvk

Система должна ответить, что пользователь добавлен. См.скрин ниже:

Пользователь в SMB добавлен
Пользователь в SMB добавлен

После чего дадим команду запустить SMB-сервер и включить его по умолчанию:

systemctl enable --now smb

Действия на госте с ОС "АльтЛинукс Рабочая станция К" 10-й платформы.

Затем на госте с ОС Альт линукс в консоле под правами root делаем для проверки что всё работает:

создать точку монтирования:

mkdir /mnt/NET

примонтировать файловую систему:

mount -t nfs 192.168.1.50:/var/NET /mnt/NET

проверить наличие файлов в каталоге /mnt/NET

ls -al /mnt/NET

Для автоматического монтирования к NFS-серверу при загрузке необходимо добавить следующую строку в файл /etc/fstab:

192.168.1.50:/var/NET /mnt/NET nfs intr,soft,nolock,_netdev,x-systemd.automount 0 0

Теперь при регистрации пользователя в виртуальной машине "АльтЛинукс Рабочая станция К" сетевая папка будет примонтирована и будет выглядеть примерно следующим образом:

Файловый менеджер с примонтированной сетевой папкой по протоколу NFS
Файловый менеджер с примонтированной сетевой папкой по протоколу NFS

Действия на госте с ОС "Windows 10 Pro"

Открываем проводник и в строке адреса вводим полный путь до вашей папке. В моем случае это \\192.168.1.60\NET\ и нажимаем ENTER. В появившемся окне вводим имя пользователя и пароль. При необходимости выставляем флажок "Запомнить учетные данные" и нажимаем кнопку "OK". См. скрин ниже:

После успешной регистрации сетевая папка добавиться слева в группе "Сеть". Отсюда через меню по правой кнопке можно подключить её как сетевой диск:

Подключаем как сетевой диск.
Подключаем как сетевой диск.

В появившемся окне выбираем букву диска и, при необходимости, выставляем флажок, чтобы этот диск всегда был:

Подключаем как диск "Z" при каждом входе в Windows
Подключаем как диск "Z" при каждом входе в Windows

Как-то так.

Комментарии (4)


  1. Onwardv Автор
    16.06.2024 16:13


    Статья является миниинструкцией - напоминалкой для меня.


    1. OverThink
      16.06.2024 16:13
      +3

      хм... смысла в статье нет, подобное гуглится за пару кликов. Если клиенты будут на лине, то почитай про pam mount. Если учётка в самбе совпадает с учёткой на клиенте(даже на винде), то пароль вводить не нужно.

      вот мой конфиг самбы с корзиной, группами, наследованием прав.

      [global]
      auto services = public
      logging = file
      recycle:exclude_dir = /srv/samba/rocketchat
      default = public
      recycle:touch = Yes
      passwd program = /usr/bin/passwd %u
      os level = 20
      recylce:excludedir = tmp temp cache
      max log size = 1000
      server role = standalone server
      load printers = no
      passwd chat = Enter\snew\s\spassword:* %n\n Retype\snew\s\spassword:* %n\n password\supdated\ssuccessfully .
      map to guest = bad user
      usershare owner only = false
      recycle:exclude = *.tmp *.temp *.o .obj ~$ *.~?? *.log .trace .~lock.
      server min protocol = SMB2
      log file = /var/log/samba/log.%m
      read raw = no
      panic action = /usr/share/samba/panic-action %d
      obey pam restrictions = no
      write raw = no
      recycle:repository = /srv/samba/.trash
      usershare allow guests = yes
      encrypt passwords = yes
      vfs objects = recycle
      recycle:keeptree = Yes
      recycle:versions = Yes
      pam password change = yes

      create mask = 775
      force create mode = 775
      security mask = 775
      #force security mode = 775
      directory mask = 2775
      force directory mode = 2775
      directory security mask = 2775
      force directory security mode = 2775

      follow symlinks = yes
      unix extensions = no
      wide links = yes

      [03_Бухгалтерия]

      path = /srv/samba/public/03_Бухгалтерия
      browseable = no
      valid users = @ad_Bukhgalteriia
      write list = @ad_Bukhgalteriia
      force group = ad_Bukhgalteriia
      guest ok = yes
      writeable = yes


  1. GennPen
    16.06.2024 16:13
    +1

    Может я ошибаюсь, но "файловый сервер" это нечто большее чем простое расшаривание папки.


    1. Onwardv Автор
      16.06.2024 16:13

      Спасибо. Натолкнули на более подходящее название. Статью переименовал.