|
|
|
@ -0,0 +1,98 @@
|
|
|
|
|
Периодически, при работе на Linux системах, требуется примонтировать расшаренную SMB-папку к файловой системе.
|
|
|
|
|
|
|
|
|
|
Для этой цели нам потребуется установленный пакет `cifs-utils`, установленный командой:
|
|
|
|
|
=== "в Ubuntu и Debian"
|
|
|
|
|
```bash
|
|
|
|
|
sudo apt-get install cifs-utils ntfs-3g ntfs-confiп
|
|
|
|
|
```
|
|
|
|
|
=== "в Fedora, CentOS и других RedHat based дистрибутивах"
|
|
|
|
|
```bash
|
|
|
|
|
sudo yum install cifs-utils ntfs-3g ntfs-confi
|
|
|
|
|
```
|
|
|
|
|
Что нужно чтобы монтировать расшаренные папки вручную. Потребуется создать путь куда будем монтировать SMB-папку, пусть это, к примеру, будет `/mnt/sharefolder`:
|
|
|
|
|
```bash
|
|
|
|
|
sudo mkdir /mnt/sharefolder
|
|
|
|
|
```
|
|
|
|
|
Вот такой командой можно примонтировать папку, требующую авторизации по логину и паролю:
|
|
|
|
|
```bash
|
|
|
|
|
sudo mount -t cifs //192.168.80.10/share /mnt/sharefolder -o username=windowsuser,password=windowspass,iocharset=utf8,file_mode=0777,dir_mode=0777
|
|
|
|
|
```
|
|
|
|
|
где вместо:
|
|
|
|
|
|
|
|
|
|
- `//192.168.80.10/share` – ip-адрес и имя необходимой общей папки (если имя расшаренной папки содержит пробел, то необходимо заключить весь путь в кавычки, как это показано в следующем примере)
|
|
|
|
|
- `/mnt/sharefolder` – путь куда будет монтироваться ресурс,
|
|
|
|
|
- `windowsuser` – имя пользователя с необходимыми правами доступа к этому ресурсу Windows,
|
|
|
|
|
- `windowspass` – пароль этого пользователя.
|
|
|
|
|
|
|
|
|
|
Если необходимая папка не требует обязательной авторизации, то подключить ресурс можно такой командой:
|
|
|
|
|
```bash
|
|
|
|
|
sudo mount -t cifs "//192.168.0.11/общие документы" /media/sharefolder -o guest,rw,iocharset=utf8,file_mode=0777,dir_mode=0777
|
|
|
|
|
```
|
|
|
|
|
Если гостевой доступ к необходимой папке включен только в режиме чтения, то будет достаточно такой команды:
|
|
|
|
|
```bash
|
|
|
|
|
sudo mount -t cifs //192.168.0.11/общие /media/sharefolder -o guest,iocharset=utf8
|
|
|
|
|
```
|
|
|
|
|
При удачном выполнении этих команд не должно произойти никакого уведомления – можете смело проверять как примонтировалась папка перейдя по вашему пути (в нашем примере – `/mnt/sharefolder`).
|
|
|
|
|
Отмонтируется папка командой:
|
|
|
|
|
```bash
|
|
|
|
|
sudo umount /mnt/sharefolder
|
|
|
|
|
```
|
|
|
|
|
Для того чтобы осуществить автомонтирование таких папок нам придется отредактировать системный файл **fstab**. Также, если доступ к необходимому windows-ресурсу требует обязательной авторизации, то потребуется предварительно создать файл, в котором будут прописаны логин и пароль доступа (сделать это можно текстовым редактором nano):
|
|
|
|
|
```bash
|
|
|
|
|
sudo nano /root/.smbcredentials
|
|
|
|
|
```
|
|
|
|
|
В этот новый файл добавьте две строки:
|
|
|
|
|
```
|
|
|
|
|
username=windowsuser
|
|
|
|
|
password=windowspass
|
|
|
|
|
```
|
|
|
|
|
где, соответственно
|
|
|
|
|
- **windowsuser** – имя пользователя с необходимыми правами доступа к ресурсу Windows,
|
|
|
|
|
- **windowspass** – пароль этого пользователя.
|
|
|
|
|
|
|
|
|
|
Измените права созданного файла так, что редактировать и смотреть его смог только root, то есть сама система:
|
|
|
|
|
```bash
|
|
|
|
|
sudo chmod 700 /root/.smbcredentials
|
|
|
|
|
```
|
|
|
|
|
Сохраните изменения и переходите к редактированию файла /etc/fstab:
|
|
|
|
|
```bash
|
|
|
|
|
sudo nano /etc/fstab
|
|
|
|
|
```
|
|
|
|
|
И здесь в самом конце добавьте строку типа:
|
|
|
|
|
```
|
|
|
|
|
//192.168.0.11/share /media/sharefolder cifs credentials=/root/.smbcredentials,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0
|
|
|
|
|
```
|
|
|
|
|
Если авторизации по имени и паролю не требуется, а требуется только гостевой доступ, то создавать файл **.smbcredentials** не потребуется, этот шаг можно было пропустить и сразу в `/etc/fstab` добавить строку:
|
|
|
|
|
```
|
|
|
|
|
//192.168.0.11/общие\040документы /media/sharefolder cifs guest,rw,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0
|
|
|
|
|
```
|
|
|
|
|
Обратите внимание, что здесь если ваша папка содержит пробелы, то вариант аналогичный командной строке – заключении пути в кавычки – не поможет, для того, чтобы **fstab** понял пробелы – их необходимо заменить на четыре символа: `\040 `
|
|
|
|
|
И, соответственно, если требуется только лишь гостевой доступ в режиме чтения к windows-папке, то будет достаточно такой строки:
|
|
|
|
|
```
|
|
|
|
|
//192.168.0.11/общие /media/sharefolder cifs guest,iocharset=utf8 0 0
|
|
|
|
|
```
|
|
|
|
|
Для того, чтобы проверить корректно ли монтируется shared-папка из fstab без перезагрузки нужно выполнить такую команду:
|
|
|
|
|
```bash
|
|
|
|
|
sudo mount -a
|
|
|
|
|
```
|
|
|
|
|
Также к этому стоит добавить, что если вы хотите получать доступ к windows-шаре не через ip-адрес, а через имя машины, то вам потребуется установить winbind:
|
|
|
|
|
=== "в Debian-based"
|
|
|
|
|
```bash
|
|
|
|
|
sudo apt-get install winbind
|
|
|
|
|
```
|
|
|
|
|
=== "в RedHat-based"
|
|
|
|
|
```bash
|
|
|
|
|
sudo yum install samba-winbind
|
|
|
|
|
```
|
|
|
|
|
После этого отредактируйте файл **/etc/nsswitch.conf**:
|
|
|
|
|
```bash
|
|
|
|
|
sudo nano /etc/nsswitch.conf
|
|
|
|
|
```
|
|
|
|
|
Где в строке:
|
|
|
|
|
`hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4`
|
|
|
|
|
перед dns добавьте wins, то есть после редактирования она должна выглядеть вот так:
|
|
|
|
|
`hosts: files mdns4_minimal [NOTFOUND=return] wins dns mdns4`
|
|
|
|
|
|
|
|
|
|
После перезагрузки для получения доступа к windows-ресурсу через CIFS можно будет указывать не только ip, но и сетевое имя windows-ресурса (netbios name). Но мы все же рекомендую использовать непосредственно ip-адрес, т.к. к нему обращение идет напрямую, быстрее.
|
|
|
|
|
|
|
|
|
|
Также стоит отметить, что таким образом можно монтировать только конкретные общие папки (например: `//192.168.0.11/share`), но не весь windows-ресурс целиком (то есть просто: `//192.168.0.11`).
|