commit 12c0563e364ff9c819adc6db3f0d7afcd6ba4634 Author: Maxim Romanko Date: Mon May 6 16:47:33 2024 +0300 [INIT] Init comit 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 0000000..9579567 Binary files /dev/null and b/req.txt differ