Как сделать зашифрованную домашнюю папку доступной для двух локальных пользователей?

Мы с женой делим ноутбук с Ubuntu 12.04 LTS, и я хотел бы зашифровать домашнюю папку каждого из нас, сохраняя при этом доступ другого.

Часть шифрования с использованием eCryptfs достаточно проста, но добавление второго пользователя, по-видимому, недостаточно хорошо документировано. Общая зашифрованная папка была бы возможна, но я думаю, что общий доступ ко всей домашней папке будет проще и лучше поддерживается сообществом в целом.

Я читал подсказки, что вы можете добавить ключи в связку ключей ядра ecryptfs, но обнаруженные мной указания далеко не ясны , даже если я называю себя опытным пользователем.

4
задан 11 February 2014 в 23:45

2 ответа

Я думал, что это будет похоже на LUKS с pam_mount , использующим один домашний раздел для всех пользователей (я не знаю, можно ли это сделать или было бы хорошей идеей, используя LUKS) или используя отдельные разделы для каждого пользователя, что в случае LUKS было бы более громоздким. Чтение FAQ с обоими пользователями должно быть достаточным, или кажется:

Как только один пользователь может получить доступ к файлу eCryptfs, любой пользователь с разрешением может также получить доступ к файлу. Разве eCryptfs не требует, чтобы у всех пользователей был ключ для доступа к файлам?

eCryptfs сознательно не пытается повторно реализовать механизмы дискреционного и обязательного контроля доступа, уже присутствующие в ядре Linux. eCryptfs просто потребует, чтобы ключ шифрования файла (FEK) был связан с любым данным индексом, чтобы расшифровать содержимое файла на диске. Это предотвращает доступ злоумышленника к содержимому файла вне контекста доверенной среды хоста; например, удалив устройство хранения или загрузив live CD. Это единственный тип несанкционированного доступа, который eCryptfs предназначен для предотвращения.

После того, как eCryptfs связал этот FEK с inode, он не накладывает никаких дополнительных ограничений на то, кто или что может получить доступ к файлам, переходя к стандартным правам пользователя / группы / других разрешений, возможностям, принудительному использованию типа SE Linux и т. Д. регулировать доступ к файлам. eCryptfs не ведет родословную относительно того, как FEK нашел свой путь к inode, поэтому у него нет никакого способа узнать, что какой-либо конкретный UID должен или не должен иметь возможность открывать файл, и eCryptfs не должен делать это.

Если eCryptfs наложит дополнительный контроль доступа к содержимому расшифрованного файла в среде доверенного хоста, это не обеспечит никакой дополнительной безопасности при появлении непреднамеренных проблем с юзабилити. Например, пользователь может пожелать поделиться своими расшифрованными файлами с некоторыми другими пользователями в системе без необходимости делиться с ним своим ключом или добавлять свои ключи в набор ключей, обертывающих FEK индекса. Пользователи ожидают, что смогут выполнить такую ​​задачу с помощью пользователей, групп, возможностей и типов, и eCryptfs переносит решения по управлению доступом в доверенных средах хоста на эти существующие механизмы контроля доступа.

Вы можете найти полный FAQ в /usr/share/doc/ecryptfs-utils/ecryptfs-faq.html или онлайн .


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

0
ответ дан 11 February 2014 в 23:45

Вы можете сделать это довольно легко, используя Samba. Настройка займет около пяти или десяти минут. Тем не менее, обратите внимание, что оба пользователя должны будут войти в систему, чтобы их ключи шифрования были доступны для использования Samba. Это не будет работать в ситуации, когда вы хотите, чтобы один пользователь мог получить доступ к файлам другого пользователя, пока они не вошли в систему.

  1. Установите Samba (если она у вас не установлена)

    sudo apt-get install samba

  2. Добавьте пользователей Samba для двух пользователей Linux (для этого примера они будут Том и Салли)

    sudo smbpasswd -a tom sudo smbpasswd -a sally

  3. Откройте файл конфигурации Samba в текстовом редакторе /etc/samba/smb.conf

    sudo nano /etc/samba/smb.conf

  4. Добавьте определения общих ресурсов внизу файла. (Не используйте определение [home] share в файле уже, так как оно не позволит вам использовать необходимую настройку «принудительного пользователя». См. Примечание ниже о том, зачем нужен «принудительный пользователь».)

    [tom] comment = Tom's home folder path = /home/tom guest ok = no browseable = yes read only = no valid users = tom, sally force user = tom

    [sally] comment = Sally's home folder path = /home/sally guest ok = no browseable = yes read only = no valid users = tom, sally force user = sally

  5. Сохраните изменения и перезапустите сервер Samba, чтобы убедиться, что новые настройки применяются. Я использую эти три команды, но это может быть больше, чем необходимо.

    sudo samba restart sudo service smbd restart sudo service nmbd restart

  6. (Необязательно) По умолчанию Samba будет рекламировать ваши общие папки в сети. Вы можете предотвратить это несколькими различными способами. В файле smb.conf, который вы редактировали выше, вы можете установить для разрешенных интерфейсов разрешение 127.0.0.1 (что означает «этот компьютер»). Это может быть установлено глобально (в разделе Networking smb.conf) или вы можете установить его индивидуально для каждого общего ресурса, который вы хотите ограничить.

    interfaces = 127.0.0.1

Если все работает правильно, вы сможете увидеть свои домашние папки, перечисленные в разделе «Сеть», в вашем файловом браузере (либо ваш компьютер будет отображаться как сетевое устройство, или вы найдете папки в папке «Сеть Windows»). Когда вы впервые подключаетесь к общей папке, вам будет предложено ввести имя пользователя и пароль Samba, но вы можете избежать этого в будущем, если файловый браузер запомнит это для вас.

Примечание: «Принудительный пользователь» заставляет файловые операции выполняться как указанный пользователь Linux, независимо от того, кто является вошедшим в систему пользователем Samba. Это означает, что когда Салли записывает файл в общий дом Тома, она фактически пишет его как пользователь Linux. Если вы не используете «принудительный пользователь», Салли получит ошибку «NT_STATUS_ACCESS_DENIED» (поскольку пользователь Linux Салли не может получить доступ к зашифрованному дому Тома).

0
ответ дан 11 February 2014 в 23:45

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

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