Зашифрованная домашняя папка все еще доступна после выхода

13

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

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

wне перечисляет пользователя, и вывод sudo pgrep -u <username>пуст, указывая, что у пользователя нет никаких запущенных процессов.

В чем причина такого поведения? Почему бы просто не заблокировать домашнюю папку пользователя после того, как он вышел из системы?

UTF-8,
источник
Не могли бы вы включить вывод grep -Fe ecryptfs /var/log/auth.logпримерно со времени выхода пользователя из системы?
Дэвид Фёрстер
Команда выдает следующие выходные данные: pastebin.com/jZXdahbJ Согласно Emacs, единственными строками, которые содержат строку «ecryptfs», являются строки, которые были созданы, когда я запустил эту команду.
UTF-8
Результат, как и ожидалось, соответствует строкам, которые Emacs уже показал мне: pastebin.com/VtV7iCDg
UTF-8,
Ok. Это стоило посмотреть.
Дэвид Фёрстер
Я также заметил эту ошибку в постоянных живых системах (при попытке создать второго пользователя с зашифрованным домом).
Судод

Ответы:

6

Известная ошибка

Если я правильно понимаю, это известная ошибка.

Смотрите эту ссылку: wiki.archlinux.org/index.php/ECryptfs

Прокрутите вниз к розовому абзацу

Предупреждение: К сожалению, автоматическое размонтирование подвержено сбоям с помощью systemd, и в него поступают сообщения об ошибках ...

Работа вокруг

Как это сейчас, то вам лучше закрыли или перезагрузки , чтобы удалить следы (Это не достаточно , чтобы выйти).

sudodus
источник
Что вы подразумеваете под «выход из системы утечки информации между пользователями»? Вы имеете в виду, что что-то происходит, кроме того, что другой пользователь с достаточными привилегиями может получить доступ к текстовым данным в домашнем каталоге первого пользователя? (Конечно, это возможно до выхода из системы.)
UTF-8
1
Попытка объяснить лучше: «Недостаточно выйти из системы». (Выход из системы не удаляет текстовые экземпляры файлов, которые использовались пользователем с зашифрованным домом. Таким образом, информация может просочиться от этого пользователя к другому пользователю, который входит в систему, по крайней мере, если этот другой пользователь имеет привилегии sudo. Но если выключить или перезагрузить, незащищённые экземпляры файлов исчезают.
sudodus
3

Я не могу проверить или подтвердить это, но при условии, что вы используете ecryptfs(это то, что Ubuntu предлагает во время установки, IIRC), зашифрованные данные хранятся в скрытой папке /home/.encryptfs/$USERи монтируются в местоположение вашей реальной домашней папки с помощью ecryptfsдрайвера при входе в систему. в.

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

  • плохой конфиг (возможно, он должен был быть отключен при выходе из системы, но не был)
  • неожиданный тип выхода из системы (иногда эти решения работают для входа / выхода DM, но не работают в противном случае)
  • если размонтирование выполняется сценарием выхода из системы (не обязательно так), то что-то, предшествующее команде unmount, может завершиться ошибкой и привести к преждевременному завершению работы сценария.

Одна вещь, которая может помочь вам проверить это, будет запускаться sudo mount | grep homeперед входом в систему, после входа в систему и после выхода из системы, чтобы увидеть home, монтируется ли что-либо, связанное с этим . Вы также можете искать /etc/fstabсоответствующие записи. Наконец, есть некоторые настройки /home/.ecryptfs/$USER/.ecryptfs/с соответствующими настройками для автоматического / размонтирования.

Полезная информация о ecryptfsможет быть найдена в этом ответе и в когда-либо полезном ArchWiki .

krs013
источник
Я попробовал то, что вы сказали мне: pastebin.com/DrmEXQPV Я не выхожу из системы каким-либо странным способом, но стандартным способом GUI. FS все еще установлен, как вы можете видеть. Упомянутые вами файлы конфигурации пусты. В моей /etc/fstabзаписи нет ничего, кроме 1 записи о том, что мой единственный раздел данных должен быть подключен, /и 1 записи о каком-то связанном с университетом сетевом ресурсе. Должен ли я попробовать выйти из системы по-другому? Если так: как?
UTF-8
Комментарий к выходу из системы другим способом был своего рода догадкой - менеджеры рабочего стола добавляют много к входу и выходу из системы, что усложняет представление и затрудняет определение того, какие события вызваны. Мне было интересно, потому что мог быть какой-то сценарий или событие, которое не запускалось. Судя по другим ответам, проблема не в этом, а в чем-то связанном с ecryptfsсамим собой. На этой ноте, однако, вы используете sshили входите через текстовые терминалы? Может быть возможно написать скрипт, который позаботится о размонтировании при выходе из системы, если мы найдем, куда его поместить.
krs013
3

Редактировать /etc/systemd/logind.confи установитьKillUserProcesses=yes

Обратите внимание , что это нарушает фоновые программы, screen, tmuxи тому подобные ...

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

/unix/251902/ecryptfs-auto-umount-does-not-work

quadruplebucky
источник
Я проверю, работает ли ваш метод для постоянной работающей системы со вторым пользователем, который зашифровал дом.
Судод
Извините, но я не смог заставить этот метод работать в постоянной работающей системе со вторым пользователем, который зашифровал дом. (Я не проверял ваше решение в установленной системе, я оставлю это @ UTF-8, который задал оригинальный вопрос.)
sudodus
Я не заинтересован в том, чтобы исправить это на моем собственном компьютере. Я единственный, кто использует его в любом случае, но хочет использовать 2 учетные записи с зашифрованными домашними папками, и никто другой не знает пароль к любой учетной записи. Меня интересует, почему он не отключает зашифрованные тома автоматически по умолчанию . Разве он не может просто проверить активные фоновые процессы, запущенные в контексте пользователя, и размонтировать его, если таковых нет?
UTF-8
@ UTF-8, я согласен с тобой, что он должен работать так, как ты хочешь, чтобы он работал. Если я правильно понимаю, это известная ошибка. Смотрите эту ссылку, wiki.archlinux.org/index.php/ECryptfs . Прокрутите вниз к розовому абзацу «Предупреждение. К сожалению, автоматическое размонтирование может привести к разрыву с systemd и появлению ошибок». - Как сейчас, вам лучше выключить или перезагрузить компьютер, чтобы удалить следы (выход из системы приведет к утечке информации между пользователями.)
sudodus
@ UTF-8 - это ошибка в взаимодействии systemd / session, поскольку, по крайней мере, wheezy (мне очень удобно просто повесить ее на systemd) - изменение /etc/systemd/logind.conf работает для меня 16.04 (протестировано с тремя разными пользователями) , разные сессии и т.д ...)
quadruplebucky
3

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

Я использовал "ecryptfs-migrate-home -u user" для создания mount. следовал инструкциям и все работает, кроме автоматического отключения при выходе.

Я сравнил файлы конфигурации в /etc/pam.d/ с документацией pam_ecryptfs и обнаружил некоторые отличия. ecryptfs находился в 4 файлах конфигурации pam.d, тогда как документы pam_ecryptfs указывают только на 2 файла, которые нужно / следует / поддерживать ecryptfs, например:

   /etc/pam.d/common-auth:
              auth    required        pam_ecryptfs.so unwrap
   /etc/pam.d/common-session:
              session optional        pam_ecryptfs.so unwrap

Итак, я закомментировал 2 других экземпляра, перезагрузил, и все заработало: автоматическое монтирование при входе в систему и автоматическое размонтирование при выходе из системы для графического и консольного входа. (Я использовал альтернативные tty для проверки из учетной записи root)

Это 18.04 Lubuntu на ноутбуке, рабочем столе и гостевой виртуалке (хост Windows).

Мне интересен опыт других.

edit_1: улучшена формулировка. edit_2: добавлены результаты тестирования рабочего стола и VB.

Красная скала
источник
Не вызывало ли проблем отключение / комментирование какой-либо из этих строк? Меняет ли ваш пароль еще раз файл ключа eCryptfs?
Xen2050
Это работало для меня в Linux Mint 19. Чтобы добавить некоторые подробности для других: четыре файла конфигурации в /etc/pam.d, которые ссылаются на ecryptfs: common-auth, common-password, common-session, common-session- неинтерактивный. Комментирование строк в общем-пароле и общем-сеанс-неинтерактивном привели к желаемому поведению размонтирования при выходе из системы. Кроме того, запись в common-auth была установлена ​​как «необязательная», а не «обязательная», как предполагается в соответствии с документацией. Однако я оставил это как есть.
Evencoil
@ Xen2050, извините за поздний ответ. После изменений, комментирующих строки, я не обнаружил никаких проблем и пока не пытался сменить пароль.
Redrock
Смена пароля может быть важна для проверки, она должна автоматически перекомпоновать ключ шифрования с вашим новым паролем, чтобы в следующий раз работала регистрация. Если это не сработает, тогда просто смена пароля на предыдущий должен работать ... [хотя всегда полезно иметь резервную копию]
Xen2050
1
@ Xen2050, я сделал тест смены пароля. это сработало.
Redrock
2

Я делаю это с помощью скрипта в rclocal

#!/bin/sh
#

while true; do
    if [ ! -d /run/user/1000 ]; then
        if [ -f /home/momo/.mounted ]; then
            umount /home/harry
        fi      
    fi

    if [ ! -d /run/user/1001 ]; then
        if [ -f /home/vm/.mounted ]; then
            umount /home/maud
        fi
    fi

    sleep 10
done
exit 0
Уолтер Вунш
источник
Как вы получаете ID пользователя?
Авинаш Радж
0

Если вам не нужен доступ из cron или на рабочих местах (неинтерактивные задачи) к ЛЮБЫМ домашним каталогам, вам просто нужно закомментировать строчку

session  optional        pam_ecryptfs.so unwrap

в /etc/pam.d/common-session-noninteractive.

Это приведет к размонтированию всех зашифрованных домашних каталогов при выходе пользователя из системы.

Джефф Маллиган
источник