Решение ниже предполагает, что ваш друг не эксперт, пытаясь взломать ваш компьютер, чтобы найти способ поиска ваших данных. Однако это разумный порог, чтобы предотвратить непреднамеренный доступ (монтаж) к определенному разделу или диску.
Опция, которая также может использоваться как более друг в любой учетной записи пользователя:
Добавьте в файл sudoers следующее [/etc/sudoers, sudo visudo):<your_friends_username> ALL = NOPASSWD: /bin/umount
Это позволит ему отключить диск без пароля sudo. В учетной записи ваших друзей скопируйте сценарий ниже в пустой файл и сохраните его где-нибудь как nomount.py (или лучше, менее раскрывающее имя :)). Тестирование (все еще в учетной записи ваших друзей) скрипта по команде: python3 /path/to/nomount.py /mnt/data
и попытайтесь установить диск. Это должно потерпеть неудачу. Если он работает так, как ожидалось, добавьте его в учетную запись своих друзей. Запуск приложений: Dash> Startup Applications> Добавить команду: ppython3 /path/to/nomount.py /mnt/data
#!/usr/bin/env python3
import subprocess
import time
import sys
drive = sys.argv[1]
while True:
check = subprocess.check_output("lsblk").decode("utf-8")
if drive in check:
subprocess.Popen(["sudo", "umount", "-l", drive])
time.sleep(1)
В цикле (один раз в секунду) скрипт проверяет, установлен ли «запрещенный» диск. Если это так, он немедленно (принудительно) отключит диск с помощью команды umount -f <drivename>.
Версия bash скрипта:
#!/bin/bash
drive="$1"
while true
do
if [ -n "$(lsblk | grep $drive)" ]; then
sudo umount -l $drive
fi
sleep 1
done
Создайте и используйте его аналогично сценарию python, только:
сохраните его как nomount.sh запустите его командой:sh /path/to/nomount.sh /mnt/data
(например, версия python; используйте диск, чтобы сделать недоступен в качестве аргумента) О безопасности:
При правильных навыках и информации практически все решения могут быть превзойдены , Простой пример: с достаточным временем, все решения будут ломаться, просто начав с запуска usb, если вы не зашифровали диск.
В вышеприведенном решении наиболее очевидным способом было бы открыть окно терминала , запустите ps -u <username>, ищите процесс, чтобы убить (сценарий), и убейте его. Ваш друг, однако, должен обладать навыками для этого, намерением сделать это и знаниями, чтобы подозревать, что это делается таким образом.
Вы можете сделать процесс менее вероятным для распознавания несколько простых дополнений к установке:
Добавьте следующее в файл sudoers (/etc/sudoers, запустив sudo visudo):<your_friends_username> ALL = NOPASSWD: /bin/umount
Это позволит ему отключить диск без sudo password Сделайте его исполняемым, чтобы запустить его без предыдущих sh или python3. Таким образом, вы можете запустить скрипт с помощью команды:
unity-desk /mnt/data
В обоих ps -u <username> и ps -e процесс будет упоминаться как unity-desk. [D32] Команда, чтобы показать, что это сценарий, будет запускать ps -ef, который будет показывать путь и язык. Однако это, однако, будет еще одним шагом вперед.