Изоляция пользователя

Изоляция пользователя

В моей системе Linux есть два пользователя, скажем, A и B. Мне нужно изолировать B таким образом, чтобы B не мог получить доступ к домашнему каталогу A, даже сам A. Как мне решить эту проблему?

решение1

Поместите домашний каталог A в каталог, для которого у B не установлен бит x (выполнение).

Пример: Пусть /home/prison/Aбудет домашним каталогом A. Установите разрешения на prisonи r-xr-x---владелец:группа на root:prisoners. Установите разрешения на /home/prison/Aобычный, т. е. Aявляется владельцем.

Естественно, A все еще может жестко связывать свои файлы с другими каталогами и делать их доступными таким образом. На самом деле нет способа защитить данные от пользователей с доступом на чтение и желанием их дублировать.

решение2

Ответ Титона— хороший способ решения этой проблемы.

Другое (более тяжелое и сложное) исправление — создание соответствующей политики, если вы используете SELinux или AppArmour. Вы можете применить это на системном уровне, и A не сможет обойти это на уровне файловой системы (с AppArmour) или даже путем копирования файлов (с SELinux).

Реализацию такой политики мы оставляем читателю в качестве самостоятельного упражнения.

решение3

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

решение4

Если больше никому не нужен доступ к файлам в домашнем каталоге пользователя, вы можете сделать домашние каталоги исполняемыми/читаемыми/записываемыми.толькоэтим пользователем.

sudo chmod 700 /home/username

Другие пользователи не смогут видеть содержимое этого каталога, переходить в него и т. д.

Связанный контент