Итак для этой цели нам подойдет пакет утилит cifs-utils. Если он у вас не установлен, в командной строке введите:
sudo apt-get install cifs-utils
Создайте командой mkdir в каталоге /mnt папку "winshare", в которую подмонтируем (подключим) сетевой диск Windows:
mkdir /mnt/winshare
Подмонтирование сетевой папки Windows в Ubuntu осуществляется командой mount.cifs
mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o username=WIN_USER_NAME,password=WIN_USER_PASSWORD
Эта команда присоединит к фаловой системе Linux сетевой диск Windows с именем SHARE_NAME, который расположен на сервере с IP-адресом SERVER_IP от имени WIN_USER_NAME с паролем WIN_USER_PASSWORD. Естественно такая папка у нас в сети на хосте под управлением Windows уже должна существовать, быть расшарена для доступа из сети с соответствующими правами пользователя и паролем этого пользователя.
Этого достаточно если вы работаете под логином root`а. Если же работать с папкой планируете под логином обычного пользователя, то команде mount.cifs нужно задать параметр UID и GID для этого пользователя, иначе не будет прав доступа для редактирования файлов и каталогов. Получить UID и GID пользователя можно командой:
grep MY_USER_NAME /etc/passwd
Введя вместо MY_USER_NAME имя пользователя, под которым вы работаете в Linux, получим такую строку:
MY_USER_NAME:x:1000:1000:user,,,:/home/user:/bin/bash
где 3-е и 4-е поле (1000) как раз указывают на UID и GID пользователя MY_USER_NAME. Теперь подставим полученные значения в качестве параметров команды mount.cifs:
mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o username=WIN_USER_NAME,password=WIN_USER_PASSWORD,uid=1000,gid=1000
где uid=1000,gid=1000 - uid и gid, полученные из примера выше.
Если же сетевой диск открыт на доступ всем без пароля, в опциях вместо логина и пароля необходимо указать, что доступ является гостевым:
mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o guest
Для того чтобы в Ubuntu сетевая папка автоматически подключалась после перезагрузки, нужно добавить такой параметр в файл /etc/fstab (дописываем в конец файла):
//SERVER_IP/SHARE_NAME /MOUNT_POINT_PATH cifs ALL_OPTIONS 0 0
Получаем, как пример, такой параметр:
//192.168.0.1/share /mnt/winshare cifs user=WIN_USER_NAME,password=WIN_USER_PASSWORD,uid=1000,gid=1000 0 0
Для того, чтобы не хранить пароль в открытом виде в файле делаем следующую процедуру. Создаем файл с помощью нашего убунтовского редактора nano (за знаком # можно писать комментарии):
nano /etc/credentials #имя файла может быть любым
username=WIN_USER_NAME
password=WIN_USER_PASSWORD
domail=WIN_WORKGROUP
Делаем файл доступным для чтения и записи только для пользователя root с помощью команды chmod:
chmod 600 /etc/credentials
А вместо имен и паролей пишем в опциях credentials=/etc/credentials. Эта опция работает как при ручном монтировании сетевого диска Windows
mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o credentials=/etc/credentials,uid=1000,gid=1000
так и при автоматическом монтировании, при внесении записи в /etc/fstab :
//192.168.0.1/share /mnt/winshare cifs credentials=/etc/credentials,uid=1000,gid=1000 0 0