Как настроить общий доступ к папке

Материал из IT в школе
Перейти к навигацииПерейти к поиску



Под настройкой общего доступа обычно понимают доступ по развиваемому компанией Microsoft протоколу SMB.

В МОС/Linux есть несколько способов настроить как сервер так и клиент.

Традиционно, за серверную часть отвечает пакет samba. За клиентскую - пакет cifs-utils или сам файловый менеджер dolphin. В последнем случае файлы на сетевом диске доступны только в файловом менеджере.

Простая настройка общей папки без ограничения доступа, с отключением ранее настроенных общих папок (сервер)

Пример заимствован из мастер-класса "Основы настройки сети МОС"

Следует отметить, доступ из Windows к папкам, расшареным без пароля по умолчанию ограничен

По умолчанию включены протоколы SMB2 SMB3 Выключен SMB1

#!/bin/bash
#устанавливаем сервис
apt-get install samba
#заменяем файл настроек samba
cp /etc/samba/smb.conf /etc/samba/smb.conf.old

cat << EOF > /etc/samba/smb.conf
[global]
dos charset = CP866
unix charset = utf8
display charset = cp1251
workgroup = WORKGROUP
server string = Filestore
security = USER
map to guest = Bad User
[Public]
path = /home/docstore
read only = Yes
guest ok = Yes
browseable = yes
writable = yes
create mask = 0777
force create mask = 0777
directory mask = 0777
EOF

#создание общей папки
mkdir /home/docstore
chmod 777 /home/docstore
service smb restart
service nmb restart
systemctl enable smb.service
systemctl enable nmb.service
Управление обoими папками из Dolphin(сервер)

Включение возможности для пользователя teacher (это несовместимо с первым способом настройки сервера)

#!/bin/bash
apt-get -y install samba-usershares
#пусть teacher - пользователь, который будет ресшаривать папку 
usermod -a -G usershares teacher
reboot

После этого выбираем папку для расшаривания в dolphin, нажимаем ПКМ и настраиваем доступ

Простое добавление общей папки в список папок Dolphin (клиент)
#!/bin/bash
#имя пользователя, которому надо добавить общую папку
USER=student
#адрес ПК, на котором настроена общая папка
SERVER=172.xx.xx.xx

echo -e "<bookmark href=\"smb://${SERVER}/Public\">\n<title>\nОбщая папка\n</title>\n</bookmark>" > /tmp/add.txt
sed -i '/<\/xbel>/{
r /tmp/add.txt
a <\/xbel>
d
}' /home/${USER}/.local/share/user-places.xbel
rm /tmp/add.txt

Монтирвание общей папки с паролем в системе при загрузке (клиент)

#!/bin/bash
#задаем исходные параметры
SERVER=172.xx.xx.xx
FOLDER=Share
USER=user
PASS=password
DOMAIN=sao.obr.mos.ru


sudo apt-get install cifs-utils
mkdir /mnt/share
cat << EOF /etc/samba/mount.password
username=${USER}
password=${PASS}
domain=${DOMAIN}
EOF

echo "//${SERVER}/${FOLDER} /mnt/share cifs users,rw,credentials=/etc/samba/mount.password,dir_mode=0777,file_mode=0777,comment=systemd.automount 0 0" >> /etc/fstab

Создание ярлыка для доступа к общей папки из dolphin

#!/bin/bash

HOST="user:pass@10.x.x.x/share"
echo -e "[Desktop Entry]\nIcon=folder-remote\nName=Share\nType=Application\nExec=dolphin smb://${HOST}" > "/home/student/Рабочий стол/share.desktop"

Создание ярлыка для доступа к нерасшареной по SMB папке из dolphin (через ssh)

#!/bin/bash

HOST="user:pass@10.x.x.x/share"
echo -e "[Desktop Entry]\nIcon=folder-remote\nName=Share\nType=Application\nExec=dolphin sftp://${HOST}" > "/home/student/Рабочий стол/share.desktop"