Отключить диск для конкретного пользователя

Я только что создал новую учетную запись для моего друга. Но я не хочу, чтобы у него был доступ к моему диску данных (это не диск, на котором установлена ​​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:

enter image description here

РЕДАКТИРОВАТЬ:

basement21@basement21:~$ groups basement21
basement21 : basement21 adm cdrom sudo dip plugdev lpadmin sambashare secretdrive
basement21@basement21:~$ groups planner
planner : planner
basement21@basement21:~$ 
1
задан 25 March 2015 в 20:43

4 ответа

После долгого поиска я нашел, какова проблема была. Когда я установил свою систему, я добавил эту строку в своем 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 определяет, у меня есть разрешение чтения/записи и все в моей группе также. У остального нет разрешения.

0
ответ дан 25 March 2015 в 20:43

Изменение /mnt/data владелец и группа для Вас симпатии этого:

sudo chown basement21.basement21 /mnt/data

И позволяют, только Вы к читаете и запись , и Ваша персональная группа к только читала :

sudo chmod 750 /mnt/data
2
ответ дан 25 March 2015 в 20:43

Для достижения требования заканчиваются, как Вы указали:

Вызов Ваша система, чтобы распознать, что/dev/sdb принадлежит Вам:

sudo adduser secretdrive
sudo chown secretdrive:secretdrive /dev/sdb
sudo adduser [your-username] secretdrive
sudo chmod 770 /dev/sdb

Объяснение:

  1. присваивают новое имя системы к Вашему диску: /dev/sdb
  2. chown-ize Ваш диск к системному имени пользователя secretdrive (или какой бы ни имя Вы хотите)
  3. добавляют Ваше имя пользователя к группе, принадлежащей secretdrive так, чтобы путь система предоставил Вам доступ к диску
  4. наконец, Вы chmod-ize Ваш диск к 770 (чтение-запись владельцем | чтение-запись группой | no-read/no-write к отдыху всех других)
1
ответ дан 25 March 2015 в 20:43

Решение ниже предполагает, что Ваш друг не является экспертом, пытаясь взломать Ваш компьютер для нахождения способа изучить данные. Это - однако разумный порог, для предотвращения непреднамеренного доступа (монтирующегося) к определенному разделу или диску.


Опция, которая также может использоваться в качестве более временного решения на любой учетной записи пользователя, следующая:

  1. Добавьте следующее к sudoers файл (/etc/sudoers, выполнение sudo visudo):

    <your_friends_username> ALL = NOPASSWD: /bin/umount
    

    Это позволит ему размонтировать диск без sudo пароля

  2. В учетной записи Ваших друзей скопируйте сценарий ниже в пустой файл и сохраните его где-нибудь как nomount.py (или лучше, менее разоблачающее имя :))
  3. Тестовый прогон (все еще в учетной записи Ваших друзей) сценарий командой:

    python3 /path/to/nomount.py /mnt/data
    

    и попытайтесь смонтировать диск. Это должно перестать работать.

  4. Если это работает как ожидалось, добавьте его к Приложениям Запуска учетной записи своих друзей: Тире> Приложения Запуска> Добавляет команду:

    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; используйте диск сделать недоступным как аргумент),

Редактирование 2

О безопасности:

С правильными навыками и информацией, практически могут быть превзойдены все решения. Простой пример: с достаточным количеством времени все решения повредились бы путем простого запуска от usb запуска, если Вы не зашифровали диск.

В решении выше, самый очевидный путь состоял бы в том, чтобы открыть окно терминала, работать ps -u <username>, ищите процесс, чтобы уничтожить (сценарий) и уничтожить его. У Вашего друга должны были бы однако быть навыки, чтобы сделать это, намерение сделать это и знание, чтобы подозревать, что оно сделано этот путь.

Можно сделать процесс менее вероятно, чтобы быть распознанными несколькими простыми дополнениями к установке:

  1. Дайте сценарию имя маскировки как unity-desk (Я проверил, не столкнулось ли имя с существующей командой) без расширения*
  2. Сделайте это исполняемым файлом, чтобы смочь выполнить его без предыдущего sh или python3.

Таким образом, можно запустить скрипт с командой:

unity-desk /mnt/data

В обоих ps -u <username> и ps -e процесс был бы упомянут как unity-desk. Едва ли процесс (-имя) Вы были бы likie для уничтожения на первом взгляде.
Команда для раскрытия того, что это - сценарий, должна была бы работать ps -ef который показал бы путь и язык. Однако это однако снова было бы шагом вперед.

1
ответ дан 25 March 2015 в 20:43

Другие вопросы по тегам:

Похожие вопросы: