summaryrefslogtreecommitdiff
path: root/LINUX/CIFS.md
blob: 163bff7ef648a7c207807243e94a2be85116116a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
```sh
sudo apt install cifs-utils -y

# Монтирование ресурса выглядит так:
mount.cifs {ресурс} {путь к директории в которую монтируем }

# Автоматическое монтирование директории происходит с использованием файла fstab. Для начала создадим дополнительный файл с учетными данными пользователя для авторизации. Оправданно будет создать этот файл в директории root.
sudo vim /root/.smbselus

# вносим в файл:
username = vlapa
password = uspass

sudo vim /etc/fstab

# добавляем:
//10.10.10.2/что_монтируем /куда_монтирем cifs user,rw,crdentials=/root/.smbselus 0 0

# =======
cifs user 一 разрешает монтировать любому пользователю;
rw 一 предоставляет права на чтение и запись;
credentials=/root/.smbselus 一 файл с учетными данными пользователя;
_0_ используется утилитой dump 0 一 выключен;
_0_ используется утилитой fsck 0 一 выключен.

В некоторых случаях требуется добавить директиву domain в файл .smbselus.

#================
# Настройка сетевой корзны:
sudo mkdir /var/recycle
sudo chmod 777 /var/recycle

sudo vim /etc/samba/smb.conf

[Recycle]
	comment = rec_dir
	path = /var/recycle
	public = yes
	browseable = yes
	writable = yes
	vfs objects = recycle
	recycle:repository = .recycle/%U
	recycle:keeptree = Yes
	recycle:touch = Yes
	recycle:version = Yes
	recycle:maxsize = *.tmp, ~$*
	recycle:exclude_dir = /tmp

#==============
[Recycle] 一 имя ресурса, отображаемое клиенту при подключении                                                                      

comment = rec_dir 一 комментарий

path = /var/recycle 一 директория, в которой размещена сетевая корзина

public = yes 一 доступ на чтение всем авторизованным пользователям, также гостевым 

browseable = yes 一 параметр устанавливает, будет ли общий ресурс отображаться в списке доступных общих ресурсов в сетевом окружении и в списке просмотра

writable = yes 一 право записи в сетевой ресурс

vfs objects = recycle 一 использование подсистемы recycle

recycle:repository = .recycle/%U 一 место хранения удаленных объектов. В этой директиве настроено попадание удаленных файлов в каталог с именем пользователя, который создается автоматически в директории .recycle

recycle:keeptree = Yes 一 удаление с сохранением дерева каталогов

recycle:touch = Yes 一 изменение даты при перемещении файла в сетевую корзину

recycle:versions = Yes 一 добавление номера версии при удалении файлов с одинаковыми именами

recycle:maxsize = 0 一 параметр отвечает за максимальный размер файла, который может быть перемещен в корзину. При текущем значении возможно переместить файл любого размера

recycle:exclude = *.tmp, ~$*  一 исключение файлов заданного типа

recycle:exclude_dir = /tmp 一 исключение директории заданного типа

```
# Как в Linux монтировать шару CIFS

 ![Обновлено](https://www.dmosk.ru/img/public/time.jpg "Дата обновления") Обновлено: 19.06.2024  ![Опубликовано](https://www.dmosk.ru/img/public/time.jpg "Дата публикации") Опубликовано: 18.07.2016

Работа с общими папками Windows происходит с использованием протокола CIFS (SMB). Все примеры в данном руководстве выполняются на Linux Ubuntu и CentOS.

### Установка пакетов

`apt install cifs-utils

### Сетевые порты

Если мы будем монтировать сетевую папку, сервер которой находится за брандмауэром, необходимо открыть следующие порты:

- 137/UDP
- 138/UDP
- 139/TCP
- 445/TCP

## Синтаксис

`mount.cifs <папка на сервере> <во что монтируем> <-o опции>

_* вместо **mount.cifs** можно написать **mount -t cifs**._

Пример:

`mount.cifs //192.168.1.1/public /mnt

_* простой пример монтирования папки **public** на сервере **192.168.1.1** в локальный каталог **/mnt**._

`apt install samba-client
`smbclient -L 192.168.1.1

 или, при необходимости авторизоваться на файловом сервере:> 
`smbclient -L 192.168.1.1 -U username

## Ручное монтирование

Теперь монтирование можно выполнить следующей командой:

`mount.cifs //192.168.1.10/share /mnt -o user=dmosk

_* в данном примере будет примонтирован каталог **share** на сервере **192.168.1.10** в локальную папку **/mnt** под учетной записью **dmosk**._

То же самое, с использованием домена:

`mount.cifs //192.168.1.10/share /mnt -o user=dmosk,domain=dmosk.local

## Автоматическое монтирование CIFS через fstab

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

vim /root/.smbclient

И добавляем в него данные следующего вида:

```sh
username=dmosk  
password=dPassw0rd  
domain=dmosk.local
```
_* в этом примере создана пара логин/пароль — **dmosk**/**dPassw0rd**;_ **domain** указывать не обязательно, если аутентификация выполняется без него.

Задаем права на созданный файл, чтобы доступ был только у пользователя, скажем, root:
`chmod 600 /root/.smbclient
`chown root:root /root/.smbclient

Теперь открываем конфигурационный файл fstab:
`vim /etc/fstab

и добавляем в него следующее:
`//192.168.1.10/share /mnt cifs user,rw,credentials=/root/.smbclient 0 0

_* в данном примере выполняется монтирование общей папки **share** на сервере с IP-адресом **192.168.1.10** в каталог **/mnt**. Параметры для подключения — **user**: позволяет выполнить монтирование любому пользователю, **rw**: с правом на чтение и запись, **credentials**: файл, который мы создали на предыдущем шаге._

Чтобы проверить правильность настроек, вводим следующую команду:
`mount -a

## Примеры использования опций

### Версии SMB

Если на стороне Windows используется старая или слишком новая версия протокола SMB, при попытке монтирования мы можем получить ошибку **mount error(112): Host is down**. Чтобы это исправить, указываем версию:
`mount.cifs //192.168.1.10/share /mnt/ -o vers=1.0

_* монтирование по протоколу SMB1.0_

### Монтирование от гостевой учетной записи

Если сервер принимает запросы без логина и пароля, то клиент подключается, как гость:
`mount.cifs //192.168.1.10/share /mnt -o guest

или в fstab:
`//192.168.1.10/share    /mnt    cifs    guest    0 0

Для монтирования шары Windows, иногда, недостаточно указать опцию **guest**. Нужно делать так:
`mount.cifs //192.168.1.10/share /mnt -o user=guest,pass=''

Или в fstab:
`//192.168.1.10/share    /mnt    cifs    guest,pass    0 0

### Права на примонтированные каталоги

При монтировании папки мы можем указать определенные права:
`mount.cifs //192.168.1.10/share /mnt -o file_mode=0777,dir_mode=0777

Для указания владельца, который будет назначен для примонтированного каталога, используем:
 `mount.cifs //192.168.1.10/share /mnt -o uid=33,gid=33

_* чтобы посмотреть идентификаторы пользователя, вводим **id -u <имя пользователя>** и **id -g <имя группы>**._