44 lines
1.8 KiB
Python
44 lines
1.8 KiB
Python
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!")
|