Постановка вопроса
Есть две linux-машины с адресами 192.168.1.101 и 192.168.1.102. Я хочу расшаривать каталог на машине с адресом 192.168.1.102, чтобы к нему был доступ с машины с адресом 192.168.1.101.
Реализация
Для того, чтобы машина A могла заходить в расшаренный каталог на машине B, нужно на машине A создать каталог который будет ассоциироваться с машиной B (назовем его remote) к нему будет при монтирован удаленный каталог, а на машине B нужно создать каталог, который и будет расшариваться в сети (назовем его share). Вот как это будет выглядеть:
192.168.1.101 192.168.1.102 ┌──────────────┐ ┌──────────────┐ │ /┐ │ │ /┐ │ │ └home │ │ └home │ │ └user │ access │ └user │ │ └remote─┼───────────────┼─────>└share │ └──────────────┘ └──────────────┘
1. На машине 192.168.1.102 (там где предоставляется доступ к расшаренному каталогу)
Расшаривание каталога на одной linux машины для другой linux машины делается следующим образом.
Сначала нужно создать каталог который будет расшариваться:
mkdir share
Открыть на редактирование файл /etc/exports:
sudo vim /etc/exports
Добавляем в файл /etc/exports строку:
/home/zheka/share 192.168.1.101/255.255.255.0(rw,insecure,nohide,all_squash,anonuid=1001,anongid=1001,no_subtree_check)
где 192.168.1.101 — ip адрес для которого раздается доступ
Вернуться в командную строку и перезапустить nfs-kernel-server:
sudo /etc/init.d/nfs-kernel-server restart * Stopping NFS kernel daemon [ OK ] * Unexporting directories for NFS kernel daemon... [ OK ] * Exporting directories for NFS kernel daemon... [ OK ] * Starting NFS kernel daemon [ OK ]
2. На машине с адресом 192.168.1.101 (которая осуществляет доступ к расшаренному каталогу)
Создать каталог, к которому будет примонтирован удаленный каталог:
mkdir remote
Ввести команду монтирования:
sudo mount -t nfs -O uid=1001,iocharset=utf-8 192.168.1.102:/home/user/share /home/user/remote
Траблы
Если после запуска команды будет такая ошибка:
sudo mount -t nfs -O uid=1001,iocharset=utf-8 192.168.0.102:/home/user/share /home/user/remote mount: wrong fs type, bad option, bad superblock on 192.168.0.102:/home/user/share, missing codepage or helper program, or other error (for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.helper program) In some cases useful info is found in syslog - try dmesg | tail or so.
то надо доустановить пакет nfs-common:
sudo apt-get install nfs-common
Samba ресурс
Есть еще один способ зайти на удаленный ресурс с линукс машины, это на самба ресурс. Для этого надо установить cifs-utils и smbclient:
sudo apt-get install cifs-utils sudo apt-get install smbclient
Далее командой smbclient -L IP_АДРЕСС_РЕСУРСА узнаем, какие каталоги на этом ресурс открыты на общий доступ:
smbclient -L 192.168.1.1 Enter zheka's password: Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.37] Sharename Type Comment --------- ---- ------- asusware.mipsbig Disk sda1's asusware.mipsbig in WD 1600BEV External Download2 Disk sda1's Download2 in WD 1600BEV External lenovo Disk sda1's lenovo in WD 1600BEV External photo Disk sda1's photo in WD 1600BEV External video1 Disk sda1's video1 in WD 1600BEV External 26_TASM50 Disk sda5's 26_TASM50 in WD 1600BEV External asm_learning Disk sda5's asm_learning in WD 1600BEV External english learning Disk sda5's english learning in WD 1600BEV External from_lenovo Disk sda5's from_lenovo in WD 1600BEV External history Disk sda5's history in WD 1600BEV External image Disk sda5's image in WD 1600BEV External install Disk sda5's install in WD 1600BEV External Music Disk sda5's Music in WD 1600BEV External photos Disk sda5's photos in WD 1600BEV External Video Disk sda5's Video in WD 1600BEV External work Disk sda5's work in WD 1600BEV External Книги Disk sda5's Книги in WD 1600BEV External IPC$ IPC IPC Service (RT-AC55U-DC10) Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.37] Server Comment --------- ------- RT-AC55U-DC10 RT-AC55U-DC10 Workgroup Master --------- ------- WORKGROUP RT-AC55U-DC10
Это все расшаренные каталоги на жестком диске подключенном к роутеру RT-AC55U-DC10 через usb. Для того, чтобы примонтировать какой-нибудь из каталогов надо выполнить команду mount:
sudo mount -t cifs -o username=zheka,password=myPassword //192.168.1.1/video1 /home/zheka/remote
В результате этой команды удаленный каталог video1 примонтируется к каталогу /home/zheka/remote