РазделыНовостиПоследние новости → Raspberry Pi и SAMBA

В предыдущей статье мы подсоединили диск с файловой системой NTFS, вот его и расшарим в общий доступ полностью.
Эта статья к видео:Raspberry Pi 3 Model B +. Часть 11 Настраиваем Samba.
В первую очередь необходимо обновить систему:
Код:

sudo apt-get update

sudo apt
-get dist-upgrade -y
Далее устанавливаем Samba:
Код:

sudo apt-get install samba samba-common-bin -y

png


Устанавливаем пароль для пользователя pi в Samba^
Код:

sudo smbpasswd -a pi

Можно сделать и без него, но лучше не надо.
Пароль установлен, теперь надо отредактировать файл конфигурации:
Код:

sudo nano /etc/samba/smb.conf

В этом файле нас в первую очередь интересует группа параметров [global]. В нее нужно добавить следующие строки:
Код:

security user

encrypt passwords 
true
map to guest 
bad user
guest account 
nobody
Также нужно уделить внимание уже прописанному в [global] параметру:
Код:

workgroup WORKGROUP

Тут Вы можете прописать название Вашей рабочей группы.

Теперь прописываем ресурсы для расшаривания. Следующие строки нужно вписать в самый конец файла, вместе с заголовком в квадратных скобках:
Код:

[RaspberryPiShare]

Comment Pi shared folder
Path 
= /mnt/usbstorage
Browseable 
yes
Writeable 
yes
read only 
no
Эти строки создают ресурс, который будет виден (browseable = yes) в сетевом размещении под названием RaspberryPiShare ([RaspberryPiShare]) и доступен для записи (writeable = yes, read only = no), и находящийся на Raspberry Pi по пути /mnt/usbstorage.
То есть мы расшариваем весь примонтированный к Raspberry Pi жесткий диск /sda2 целиком.
Перезапускаем Samba:
Код:

sudo /etc/init.d/samba-ad-dc restart

Всё заходим в сетевое окружение и находим нашу малинку.
Пытаемся войти. Появляется окно авторизации вводим логин и пароль от Samba.
jpg
И видим две папки. Папку пользователя Pi(только для чтения)и общую сетевую папку "RaspberryPiShare"

png
Далее эту папку подсоединяем как сетевой диск:
png
И у нас в проводнике появляется ещё один диск.
png

У сетевых папок Windows есть одна беда при удалении файла, он удаляется полностью и безповоротно. В Linux можно и в сетевых папках сделать корзину. Чем сейчас и займемся.
Открываем тот же файл конфигурации Samba:
Код:

sudo nano /etc/samba/smb.conf

и в секции [global] после параметров общей папки добавляем следующие строки:
Код:

recylce:excludedir tmp temp cache

recycle
:exclude = *.iso,*.tmp *.temp *.*.obj ~$* *.~?? *.log *.trace
recycle
:versions Yes
recycle
:touch Yes
recycle
:touch_mtime Yes
recycle
:keeptree Yes
recycle
:repository = /mnt/usbstorage/.trash/%U
vfs objects 
recycle
recycle
:maxsize 105057800
png

Поясню каждый параметр:
recylce:excludedir Список исключения директорий, файлы из которых не будут попадать в корзину
recycle:exclude Список исключений для файлов. В данном случае указан в виде масок некоторых расширений.
recycle:versions Параметр отвечает за версионность удаленных файлов, если их имена совпадают. В таком случае к удаленном файлу в начале имени будет добавляться Copy #N of.
recycle:touch Параметр отвечает за то, будет ли указана дата изменения файла на время удаления файла, либо останется оригинальное значение файла.
recycle:keeptree Сохранять или нет дерево каталогов для удаленных файлов.
recycle:repository Указываем директорию, где будут храниться удаленные файлы. Она может располагаться где угодно. Если параметр не указан, используется значение по-умолчанию — .recycle в корне сетевого диска.
Параметр %U указывает на то, что файл будет удалён в папку того пользователя кто это сделал.(Очень удобно потом по рукам бить тем, кто говорит, что: "Что это не я")
recycle:maxsize -максимальный размер файла, который будет удаляться в корзину в байтах В данной ситуации это 100Мб. Что больше, удаляется сразу и полностью.
Папку ".trash" надо будет создать:
Код:

mkdir /mnt/usbstorage/.trash

Перезапускаем Samba:
Код:

sudo /etc/init.d/samba-ad-dc restart

Открываем сетевой диск и видим, что при включённом параметре: "Показывать скрытые файлы" видна корзина.
png
В ней папку пользователя удалившего файлы.
png
Там папки где лежал файл
png
Ну и сам файл.
png
Т.е. видно не только пользователя, но и путь по которому файл изначально находился.
Ну чтобы файлы не забивали корзину. С помощью crona будем удалять файлы старше 30 дней автоматически каждый день в 21:00. В папке пользователя Pi создадим каталог bin с помощью MC.

png
А в нем файл скрипта trash-cleaner.sh

png
Код:

sudo nano /home/pi/bin/trash-clean.sh

И вставим в него следующую строку:
Код:

find /mnt/usbstorage/.trash/ -type f -mtime +30 -exec rm -rf {} \;

Данный скрипт будет удалять из корзины файлы старше 30 дней.
А теперь, с помощью Cron, будем запускать его каждый день в 21:00.
Откроем таблицу Cron:
Код:

sudo crontab -e

И вставим в нее вниз строку:
Код:

0 21 * * * /bin/sh /home/pi/bin/trash-clean.sh

Закроем с сохранением.
И всё.
Как то так.

19.08.2019 19:04 Автор/источник: Parashutik

Комментировать

Вы не залогинены! Регистрация