Я только что создал новую учетную запись для моего друга. Но я не хочу, чтобы у него был доступ к моему диску данных (это не диск, на котором установлена Ubuntu, а просто диск данных).
Как я могу отключить этот диск для него?
Я использую Ubuntu 14.04.
РЕДАКТИРОВАТЬ:
blkid:
/dev/sda1: UUID="eee523f2-0eb4-4ee8-b758-f8ea89273233" TYPE="ext4"
/dev/sda5: UUID="69b06774-64ed-4c11-b157-5a794c20c98c" TYPE="swap"
/dev/sdb2: UUID="5E521E0E521DEC11" TYPE="ntfs"
lsblk:
РЕДАКТИРОВАТЬ:
basement21@basement21:~$ groups basement21
basement21 : basement21 adm cdrom sudo dip plugdev lpadmin sambashare secretdrive
basement21@basement21:~$ groups planner
planner : planner
basement21@basement21:~$
После долгого поиска я нашел, какова проблема была. Когда я установил свою систему, я добавил эту строку в своем fstab:
/dev/disk/by-uuid/5E521E0E521DEC11 /mnt/data auto nosuid,nodev,nofail,x-gvfs-show 0 0
я изменил его на:
/dev/disk/by-uuid/5E521E0E521DEC11 /mnt/data auto nosuid,nodev,gid=1000,umask=007,nofail,x-gvfs-show 0 0
Мой groupid 1000, и umask определяет, у меня есть разрешение чтения/записи и все в моей группе также. У остального нет разрешения.
Изменение /mnt/data
владелец и группа для Вас симпатии этого:
sudo chown basement21.basement21 /mnt/data
И позволяют, только Вы к читаете и запись , и Ваша персональная группа к только читала :
sudo chmod 750 /mnt/data
Для достижения требования заканчиваются, как Вы указали:
Вызов Ваша система, чтобы распознать, что/dev/sdb принадлежит Вам:
sudo adduser secretdrive
sudo chown secretdrive:secretdrive /dev/sdb
sudo adduser [your-username] secretdrive
sudo chmod 770 /dev/sdb
Объяснение:
/dev/sdb
secretdrive
(или какой бы ни имя Вы хотите) secretdrive
так, чтобы путь система предоставил Вам доступ к диску Решение ниже предполагает, что Ваш друг не является экспертом, пытаясь взломать Ваш компьютер для нахождения способа изучить данные. Это - однако разумный порог, для предотвращения непреднамеренного доступа (монтирующегося) к определенному разделу или диску.
Опция, которая также может использоваться в качестве более временного решения на любой учетной записи пользователя, следующая:
Добавьте следующее к sudoers
файл (/etc/sudoers
, выполнение sudo visudo
):
<your_friends_username> ALL = NOPASSWD: /bin/umount
Это позволит ему размонтировать диск без sudo пароля
nomount.py
(или лучше, менее разоблачающее имя :))Тестовый прогон (все еще в учетной записи Ваших друзей) сценарий командой:
python3 /path/to/nomount.py /mnt/data
и попытайтесь смонтировать диск. Это должно перестать работать.
Если это работает как ожидалось, добавьте его к Приложениям Запуска учетной записи своих друзей: Тире> Приложения Запуска> Добавляет команду:
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>
.
Версия удара сценария:
#!/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>
, ищите процесс, чтобы уничтожить (сценарий) и уничтожить его. У Вашего друга должны были бы однако быть навыки, чтобы сделать это, намерение сделать это и знание, чтобы подозревать, что оно сделано этот путь.
Можно сделать процесс менее вероятно, чтобы быть распознанными несколькими простыми дополнениями к установке:
unity-desk
(Я проверил, не столкнулось ли имя с существующей командой) без расширения*sh
или python3
. Таким образом, можно запустить скрипт с командой:
unity-desk /mnt/data
В обоих ps -u <username>
и ps -e
процесс был бы упомянут как unity-desk
. Едва ли процесс (-имя) Вы были бы likie для уничтожения на первом взгляде.
Команда для раскрытия того, что это - сценарий, должна была бы работать ps -ef
который показал бы путь и язык. Однако это однако снова было бы шагом вперед.