Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Расшарить диск с одного ПК на другой в домашней сети?  (Прочитано 4358 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Multik001

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
  • Xubuntu 18.04
    • Просмотр профиля
Остался вопрос как красиво монтировать удаленную NFS на HTPC, чтобы все можно было сделать в один клик?
делал ярлык запуска с опциями
Код: [Выделить]

pkexec mount 192.168.1.248:/NAS/ /home/alex/1NAS/

Но при его запуске запрашивает пароль, как от этого можно избавиться?

Сам отвечу на свой вопрос, странно что никто мне на него не ответил...
Нужно в файл etc/fstab прописать
192.168.1.248:/NAS   /home/alex/1NAS  auto    rw,user,noauto  0       0
и как я понимаю даже если диски будут не в сети то система загрузится
после этого удаленный диск может монтировать любой пользователь командой
mount /home/alex/1NAS
или в файловом менеджере THUNAR слева появляются иконки дисков и при их нажатии происходит монтирование

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6726
  • 20% Cooler
    • Просмотр профиля
192.168.1.248:/NAS   /home/alex/1NAS  auto    rw,user,noauto,x-systemd.automount  0       0

🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 4471
    • Просмотр профиля
... странно что никто мне на него не ответил...
- дык, вот тут тебе же ссылка на статью в вики давалась...
Если бы хватило терпения прочесть статью, то и вопросов бы не осталось, ну или их бы стало меньше ::)

Оффлайн Domitory

  • Активист
  • *
  • Сообщений: 581
    • Просмотр профиля
Вопрос еще актуален?
Я обычно делаю шару на Sambe, так как она годится для обмена файлами с машинами под Win, для домашнего использования это важно.
В Kubuntu 18 и 20  точно работает. Для себя делал памятку, вроде все в ней понятно.

##SAMBA ПЕРЕДАЧА ФАЙЛОВ ЧЕРЕЗ СЕТЕВЫЕ ШАРЫ (между Windows и Linux машинами,  между Linux машинами тоже используется)
sudo apt-get install samba   ---установить утилиты Samba для сетевого обмена с Windows по протоколу SMB
sudo apt install smbclient   ---установить SMB-клиент
sudo smbpasswd -a user_name  ---устанавливаем пароль для samba юзера

#расшаривание папки в общий доступ

Добавить в файл smb.conf
sudo vim /etc/samba/smb.conf

[share]
path=/home/user_name/share
writable=yes
guest ok=yes
public=yes
force user=root
force group=root
create mask =777
directory mask=777
security mask=777
force create mode=777

sudo /etc/init.d/smbd restart   --перезапустить samba

#подключение сетевой шары

smbtree -N  --посмотреть сетевые шары в локальной сети
smb://192.168.1.101/net     --открыть сетевую шару через файловый менеджер

apt-get install cifs-utils   ---установить набор утилит для работы с CIFS  (система управления шарами)
sudo mount -t cifs  //192.168.1.104/2   /mnt/2/ -o guest        --монтирование общей сетевой шары Windows
sudo mount -t cifs //192.168.1.104/net2   /mnt/3/ -o vers=1.0,username="guest",password=" "       --монтирование общей сетевой шары Windows XP (старой версии SMB, ошибка mount error(112): Host is down) параметр vers=1.0 указывает что шара старой систем

//192.168.1.104/netshare /mnt/winshare  cifs  username="guest",password="",vers=1.0,gid=1000,uid=1000,auto,_netdev 0 0    --добавить в fstab для монтирования общей сетевой шары (WindowsXP) автоматически для определенного пользователя по gid и uid, параметр _netdev указывает на то что шару нужно подключать после запуска сети.

//192.168.10.100/share /mnt/net-shara cifs users,rw,guest,sec=none,file_mode=0777,dir_mode=0777 0 0   --добавить в fstab для монтирования samba-шары с сервера Linux на станции Linux, параметры file_mode=0777 и dir_mode=0777  задают права доступа для пользователей (0777 полный доступ)

линукс не понимает права винндовых файлов и не может им дать свои права.
При копировании файлов на сетевую шару SMB через MC может возникать ошибка "Невозможно сменить режим доступа целевого файла: Операция не позволяется (1)", сам файл при этом копируется, просто на созданный на общем ресурсе файл не назначаются линуксовые права.
Можно при каждом копировании убирать флажок в диалоге, открывающемся по F5, «сохранять атрибуты» в диалоге.

Чтобы система не назначала права на файл на примонтированной SMB шаре можно в файле /etc/fstab , в строке монтирования шары добавить параметр  noperm

Итоговая строка монтирования виндовой шары в /etc/fstab
//192.168.2.110/share /mnt/net-shara cifs users,rw,guest,sec=none,file_mode=0777,dir_mode=0777,noperm  0 0


Пользователь добавил сообщение 25 Августа 2020, 19:53:57:
Если важно использование именно NFS то вот подсказки

##NFS(Network File System) –это сетевая файловая система, позволяющая пользователям обращаться к файлам и каталогам,
расположенным на удалённых компьютерах, и использовать эти файлы и каталоги как локальные.

Для установки сервера и клиента необходимы пакеты nfs-kernel-server и nfs-common

sudo apt-get install nfs-kernel-server   --установка серверного пакета

sudo apt-get install nfs-common          --установка клиентского пакета

На сервере создаем каталог который будем расшаривать

Например   sudo mkdir /shara
Отредактируйте права права на доступ к этому каталогу в зависимости от ваших задач.

Например нужны полные права для всех. Выполняем команду:
sudo chmod 777 /shara

Так как каталог создан с правами root (команда sudo), то значит он и принадлежит пользователю root хоста.
Из соображений безопасности NFS перенаправит клиентские операции root в nobody:nogroup.
Чтобы не было конфликта нужно изменить группу и пользователя каталога:

sudo chown nobody:nogroup /shara

Настройка сервера

Настройки сервера хранятся в файле /etc/exports

sudo vim /etc/exports

в конец файла дописываем строки такого вида (для каждой новой шары и для каждого нового клиента строки создаются новые):

/share 192.168.0.9/255.255.255.0(rw,insecure,nohide,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
или
/share 192.168.0.9/24(rw,sync,no_subtree_check)
или
/share 192.168.0.9/24(rw,sync,no_root_squash,no_subtree_check)

где:

    /share –путь к папке, для которой раздается доступ;

    192.168.0.9 –IP-адрес клиента которому раздается доступ (можно указать всю сеть указав адрес сети  192.168.0.0/255.255.255.0)

    (rw...no_subtree_check) –набор опций.

        rw –чтение запись( или можно указать "ro" -только чтение);

        no_root_squash –по умолчанию пользователь root на клиентской машине не будет иметь доступа к шаре на сервере. Эта опция снимает это ограничение;

        nohide - NFS автоматически не показывает нелокальные ресурсы (например, примонтированые с помощью mount –bind), эта опция включает отображение таких ресурсов;

        sync – синхронный режим доступа(может принимать обратное значение- async). sync (async) - указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами. Опция async указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность, т.к. в случае обрыва соединения или отказа оборудования возможна потеря данных;

        noaccess – запрещает доступ к указанной директории. Может быть полезной, если перед этим вы задали доступ всем пользователям сети к определенной директории, и теперь хотите ограничить доступ в поддиректории лишь некоторым пользователям.

        all_squash– подразумевает, что все подключения будут выполнятся от анонимного пользователя

subtree_check (no_subtree_check)- в некоторых случаях приходится экспортировать не весь раздел, а лишь его часть. При этом сервер NFS должен выполнять дополнительную проверку обращений клиентов, чтобы убедиться в том, что они предпринимают попытку доступа лишь к файлам, находящимся в соответствующих подкаталогах. Такой контроль поддерева (subtree checks) несколько замедляет взаимодействие с клиентами, но если отказаться от него, могут возникнуть проблемы с безопасностью системы. Отменить контроль поддерева можно с помощью опции no_subtree_check. Опция subtree_check, включающая такой контроль, предполагается по умолчанию. Контроль поддерева можно не выполнять в том случае, если экспортируемый каталог совпадает с разделом диска;

        anonuid=1000– привязывает анонимного пользователя к «местному» пользователю;

        anongid=1000– привязывает анонимного пользователя к группе «местного» пользователя.

Перезапускаем сервер:

sudo /etc/init.d/nfs-kernel-server restart

В дальнейшем можно будет выполнить команду:

sudo exportfs -a


--Настройка клиента

Для монтирования сетевого каталога создать папку на локальном компьютере, куда будем монтировать:

mkdir /mnt/shara

Для монтирования вручную выполнить команду:

sudo mount -t nfs -O uid=1000,iocharset=utf-8 192.168.1.2:/shara /mnt/shara


Монтирование через fstab

чтобы не монтировать каждый раз в ручную можно добавить запись в файл /etc/fstab.

192.168.0.120:/shara /mnt/shara nfs user,rw,noauto 0 0

Если монтирование сетевого каталога необходимо при запуске системы то параметр noauto указывать не надо, он отключает автоматическое монтирование при запуске системы, для монтирования сетевого
каталога можно будет выполнить команду mount /mnt/shara


Пользователь добавил сообщение 25 Августа 2020, 19:59:31:
Если нужен простой DLNA-сервер для просмотра фильмов с телевизора по сети.

#DLNA сервер (dlna Ubuntu server 18)

minidlna —утилита управления сетевым протоколом DLNA

/etc/minidlna.conf —конфигурационный файл

правим в конфиге:

# интерфейсы, на которых работает сервер - домашняя сеть (enp2s0 -сетевая карта, wlxc83a35cb2e3f -wifi адаптер)
network_interface=enp2s0, wlxc83a35cb2e3f
# где искать контент
media_dir=/mnt/md0
# Добавление новых файлов и папок в список медиа-коллекции
rescan="yes"
# сюда пишут камеры motion с bt848
# обратите внимание, если внутри нет подкаталога, например /home/motion/camera1
# то все файлы будут отображены вместе с содержимым /mnt/md0 вперемежку с файлами и папками в /mnt/md0
media_dir=V,/home/motion
# имя сервера
friendly_name=Lubuntu DLNA server
# место хранения рабочих данных
db_dir=/var/cache/minidlna
# место хранения логов
log_dir=/var/log

/etc/init.d/minidlna start —запуск сервера DLNA
после перезагрузки стартует автоматически

На смартфоне (планшете) устанавливаем программу DLNA Movie Play и подключаемся к серверу, выбираем фильмы находящиеся на сервере и смотрим.
На телевизоре выбираем подключение к сети.

« Последнее редактирование: 25 Августа 2020, 19:59:31 от Domitory »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6726
  • 20% Cooler
    • Просмотр профиля
force user=root
force group=root
create mask =777
directory mask=777
security mask=777
force create mode=777
Жесть.

sudo /etc/init.d/smbd restart
Уже давно systemd (sudo systemctl restart smbd)

(Нажмите, чтобы показать/скрыть)
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Domitory

  • Активист
  • *
  • Сообщений: 581
    • Просмотр профиля
Если вдруг дома понадобился FTP сервер

## FTP-сервер, установка FTP-сервера в Ubuntu 18.04, утилита VSFTPD (vsftpd)
https://andreyex.ru/ubuntu/kak-ustanovit-ftp-server-s-vsftpd-na-ubuntu-18-04/

Для устанвоки выполните команды:

sudo apt update
sudo apt install vsftpd

Служба vsftpd запустится после установки. Можно проверить статус службы командой:

sudo systemctl status vsftpd

После установки можно пробовать подключиться к серверу по ftp со станции. В строке браузера наберите ftp://[IP-адрес сервера].

Например:

ftp://192.168.0.120

Аналогично можно зайти на FTP-сервер через диспетчер файлов Dolphin

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

Файла конфигурации vsftpd:

sudo vim /etc/vsftpd.conf

--Основные  настройки  vsftpd

Разрешаем доступ к FTP-серверу только локальным пользователям, находим директивы anonymous_enable и local_enable и проверяем соответствие вашей конфигурации следующим строкам:
/etc/vsftpd.conf

anonymous_enable=NO    --доступ к FTP-серверу только для авторизованных пользователей, для анонимного доступа необходимо "NO" исправить на "YES"
local_enable=YES       --доступ к FTP-серверу только локальным пользователям

write_enable=YES       --разрешить изменения в файловой системе, загрузка и удаление файлов, по умолчанию строка закомментирована.

chroot_local_user=YES  --запрет пользователям получать доступ к каталогам и файлам вне своего домашнего каталога, по умолчанию строка закомментирована.

По умолчанию vsftp запрещает загружать файлы

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

user_sub_token=$USER
local_root=/home/$USER/ftp   --название каталога маленькими буквами, если назвать заглавными то почему то он не видится.

или можно добавить строку в файл конфигурации vsftpd

allow_writeable_chroot=YES   --редоставить доступ к записи для своего пользователя в свой домашний каталог

Для анонимных не авторизованных пользователей доступ по умолчанию предоставляется в каталог /srv/ftp

--Еще настройки vsftpd

-Пассивные FTP-соединения

Задать Мнимальный и максимальный диапазон портов для пассивных соединений

pasv_min_port=30000
pasv_max_port=31000

-Ограничение входа пользователя

Чтобы разрешить только определенным пользователям входить на FTP-сервер, добавьте следующие строки в файл конфигурации:

userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO

Когда эта опция включена, необходимо явно указать, какие пользователи могут войти, добавив имена пользователей в файл /etc/vsftpd.user_list (по одному пользователю в строке).

-Обеспечение передачи с помощью SSL/TLS

Чтобы шифровать FTP-передачи с помощью SSL/TLS, необходимо иметь сертификат SSL и настроить FTP-сервер для его использования.

Вы можете использовать существующий сертификат SSL, подписанный доверенным центром сертификации, или создать самоподписанный сертификат.

Если у вас есть домен или поддомен, указывающий на IP-адрес FTP-сервера, вы можете легко создать бесплатный сертификат SSL для шифрования.

В этой статье мы сгенерируем самоподписанный сертификат SSL с помощью команды openssl.

Следующая команда создаст 2048-битный закрытый ключ и самоподписанный сертификат, действительный в течение 10 лет. Как закрытый ключ, так и сертификат будут сохранены в одном файле:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Теперь, когда создан SSL-сертификат, откройте файл конфигурации vsftpd:

sudo nano /etc/vsftpd.conf

Найдите директивы rsa_cert_fileи rsa_private_key_file, измените их значение pam в пути к файлу и установите директиву ssl_enable на YES:
/etc/vsftpd.conf

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES

Если не указано иное, FTP-сервер будет использовать только TLS для обеспечения безопасных подключений.

Перезапустите службу vsftpd

После того, как вы закончите редактирование, файл конфигурации vsftpd (исключая комментарии) должен выглядеть примерно так:
/etc/vsftpd.conf

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
pasv_min_port=30000
pasv_max_port=31000
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO

Сохраните файл и перезапустите службу vsftpd, чтобы изменения вступили в силу:

sudo systemctl restart vsftpd

Открытие брандмауэра

Если вы используете брандмауэр UFW, вам необходимо разрешить FTP-трафик.

Чтобы открыть порт 21( порт команд FTP), порт 20( порт данных FTP) и 30000-31000(диапазон пассивных портов), выполните следующие команды:

sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp

Чтобы избежать блокировки, мы откроем порт 22:

sudo ufw allow OpenSSH

Перезагрузите правила UFW, отключив и снова включив UFW:

sudo ufw disablesudo ufw enable

Чтобы проверить выполнение изменений:

sudo ufw status

Status: active

To                         Action      From
--                         ------      ----
20:21/tcp                  ALLOW       Anywhere
30000:31000/tcp            ALLOW       Anywhere
OpenSSH                    ALLOW       Anywhere
20:21/tcp (v6)             ALLOW       Anywhere (v6)
30000:31000/tcp (v6)       ALLOW       Anywhere (v6)
OpenSSH (v6)               ALLOW       Anywhere (v6)

Создание пользователя FTP

Чтобы протестировать наш FTP-сервер, мы создадим нового пользователя.

    Если у вас уже есть пользователь, которому вы хотите предоставить FTP-доступ, пропустите 1-й шаг.
    Если вы установили allow_writeable_chroot=YES в своем файле конфигурации, пропустите 3-й шаг.

    Создайте нового пользователя с именем newftpuser:

    sudo adduser newftpuser

    Добавьте пользователя в список разрешенных пользователей FTP:

    echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list


    Создайте дерево каталогов FTP и установите правильные разрешения:

    sudo mkdir -p /home/newftpuser/ftp/uploadsudo chmod 550 /home/newftpuser/ftpsudo chmod 750 /home/newftpuser/ftp/uploadsudo chown -R newftpuser: /home/newftpuser/ftp

    Как обсуждалось в предыдущем разделе, пользователь сможет загружать свои файлы в каталог ftp/upload.

На данный момент ваш FTP-сервер полностью работоспособен, и вы должны иметь возможность подключаться к вашему серверу с любым FTP-клиентом, который может быть настроен на использование шифрования TLS, например FileZilla.

Отключение доступа к оболочке

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

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

Создайте оболочку /bin/ftponly и сделайте ее исполняемой:

echo -e '#!/bin/sh\necho "This account account is limited to FTP access only."' | sudo tee -a  /bin/ftponlysudo chmod a+x /bin/ftponly

Добавьте новую оболочку в список допустимых оболочек в файл /etc/shells

echo "/bin/ftponly" | sudo tee -a /etc/shells

Измените оболочку пользователя на /bin/ftponly:

sudo usermod newftpuser -s /bin/ftponly





Пользователь добавил сообщение 25 Августа 2020, 20:05:40:
    force user=root
    force group=root
    create mask =777
    directory mask=777
    security mask=777
    force create mode=777

Жесть.

В чем жесть?   Для домашней сети пойдет.



Пользователь добавил сообщение 25 Августа 2020, 20:06:36:
systemd (sudo systemctl restart smbd)

Это относительно недавно :)

sudo /etc/init.d/smbd restart   все еще работает
« Последнее редактирование: 25 Августа 2020, 20:06:36 от Domitory »

Оффлайн Multik001

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
  • Xubuntu 18.04
    • Просмотр профиля
Код: [Выделить]

192.168.1.248:/NAS   /home/alex/1NAS  auto    rw,user,noauto,x-systemd.automount  0       0
Для чего нужно добавлять x-systemd.automount ?
В ubuntu 18.04 c DE XFCE в Thunar вот такая картина:
(Нажмите, чтобы показать/скрыть)

в fstab для них прописано только это

192.168.1.248:/NAS     /media/ivan/NAS nfs    rw,user,noauto,x-systemd.automount        0       0
192.168.1.248:/mynas   /media/ivan/MYNAS nfs    rw,user,noauto,x-systemd.automount      0       0

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
https://www.freedesktop.org/software/systemd/man/systemd.mount.html#x-systemd.automount

Если коротко - для этого раздела будет создан отдельный юнит монтирования.
См. остальные x-systemd опции для подробностей.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6726
  • 20% Cooler
    • Просмотр профиля
Для чего нужно добавлять x-systemd.automount ?
Не монтировать диск до первого обращения (noauto тоже нужно) - в данном случае смысл в том, что сеть запустится раньше монтирования. Удобно для сетевых дисков + совсем чуточку экономит время загрузки.
« Последнее редактирование: 25 Августа 2020, 23:37:02 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

 

Страница сгенерирована за 0.036 секунд. Запросов: 25.