disk_block/main.py
2024-05-06 16:47:33 +03:00

44 lines
1.8 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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!")