Монтировать для каждого пользователя

Я отвечаю за небольшую сеть NFS и хочу настроить машины на выполнение различных монтировок в зависимости от того, какой пользователь входит в систему. Возможно ли это?

Например, если пользователь A входит в систему, я хочу, чтобы он видел только / home / users, и если пользователь B входит в систему, я хочу, чтобы он видел / home / users и / home / penguins.

Я знаю, что мог бы сделать это, используя групповые разрешения, но для дополнительной безопасности мне было бы интересно, если / home / penguins просто не может быть смонтирован при всех входах пользователя A.

5 ответов

Посмотрите на libpam-mount. Он в основном выполняет задачи монтирования для пользовательского сеанса (в то время как автомонтирование монтируется, когда папка точки монтирования статична).

Со страницы проекта:

Этот модуль предназначен для сред с центральными файловыми серверами, которые пользователь желает подключить при входе в систему и размонтировать при выходе из системы, таких как (полу) бездисковые станции, где многие пользователи могут входить в систему и где статическое монтирование всего / home с сервера является безопасным риск, или перечисление всех возможных объемов в / etc / fstab неосуществимо.

Обычно я бы предложил использовать autofs с таблицами монтирования, загруженными из LDAP, или в вашем случае несколько ржавый NIS. Но, поскольку для вас важно не монтировать объекты для определенных пользователей, а не полагаться на разрешения, autofs не для вас (хотя, скорее всего, это возможно).

Кроме того, я хотел бы отметить, что просто не наращивание экспорта вряд ли является мерой безопасности.

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

Я подозреваю, что вы действительно хотите, чтобы процессы, запущенные от имени разных пользователей, видели разные монтирования файловой системы, даже если эти процессы выполняются одновременно.

Linux может сделать это с помощью bindfs.

  1. смонтировать все файловые системы где-нибудь (независимо от пользователя), не предоставляя доступ пользователям, о которых идет речь
  2. использование bindfs перемонтировать их там, где пользователи получат к ним доступ (в зависимости от пользователя)

Вам не нужен автомонтирование. Просто установите соответствующие строки в fstab, чтобы пользователи могли монтировать эти монтируемые user вариант в фстабе). Затем отредактируйте каждого пользователя ~/.profile чтобы добавить команду монтирования там. Таким образом, каждый раз, когда пользователь входит в систему, будет подключен правильный диск.

Если вы хотите использовать автомонтирование, вы можете настроить его так, чтобы монтирование монтировалось в домашнем каталоге каждого пользователя. Затем, когда пользователь входит в систему и получает доступ к своему $HOME, autofs будет монтировать диски или разделы или все, что вы монтируете.

Изучите использование автомонтирования из autofs http://www.autofs.org/

Простой способ настроить это в Ubuntu:

apt-get install nfs-common autofs

добавлять /home /etc/auto.home в /etc/auto.master
добавлять * nfsserver:/share/& в /etc/auto.home

Это кажется довольно простым, если кто-то использует ручную команду "mount" внутри каждого пользователя.profile. Это позволяет активировать индивидуально настроенное монтирование, когда этот конкретный пользователь входит в систему со своим идентификатором и паролем.

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