From 12c0563e364ff9c819adc6db3f0d7afcd6ba4634 Mon Sep 17 00:00:00 2001 From: Maxim Romanko Date: Mon, 6 May 2024 16:47:33 +0300 Subject: [PATCH] [INIT] Init comit --- .gitignore | 1 + main.py | 43 +++++++++++++++++++++++++++++++++++++++++++ req.txt | Bin 0 -> 182 bytes 3 files changed, 44 insertions(+) create mode 100644 .gitignore create mode 100644 main.py create mode 100644 req.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f5e96db --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +venv \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..0f40c9a --- /dev/null +++ b/main.py @@ -0,0 +1,43 @@ +import os +import platform +from typing import List + +trusted_disk = { + "model": "", + "serial": "" +} + +def mount(disk: Disk): + plist = disk.get_partition_list() # получаем все разделы на диске + for item in plist: + if item.get_fs_uuid() != "": # проверяем что раздел имеет uuid, если нет, то не монтируем его, так на нем нет файловой системы + os.mkdir(f"/mnt/{item.get_fs_uuid()}", mode=777) # создаем папку /mnt/uuid, так монтирует линукс, если не задан явный путь монтирования, тут надо придумать, как получить кто будет владельцем папки, пока разрешаем доступ всем + print(f"mount {item.get_path()} /mnt/{item.get_fs_uuid()}") # монтируем раздел в созданную папку + + + + +def unmount(disk: Disk): + plist = disk.get_partition_list() + for item in plist: + if item.get_fs_uuid() != "" and item.get_fs_mounting_point() != "": # проверяем, что есть фс и она смонтирована куда-то + print(f"umount {item.get_path()}") # размонтируем + + +def main(): + di = DiskInfo() + disks: List[Disk] = di.get_disk_list(sorting=True) + for disk in disks: + if disk.get_model() == trusted_disk["model"] and disk.get_serial_number() == trusted_disk["serial"]: # тут проверки что диск доверенный чисто для примера + mount(disk) + else: + unmount(disk) + + + +if __name__ == "__main__": + if platform.system() == "Linux": + from diskinfo import DiskInfo, Disk + main() + else: + print("This script can be run only on Linux system!") diff --git a/req.txt b/req.txt new file mode 100644 index 0000000000000000000000000000000000000000..957956710dd14244bd3f3be02c876506ca6db237 GIT binary patch literal 182 zcmX|(K@NgY3 literal 0 HcmV?d00001