ログアウト後も暗号化されたホームフォルダーにアクセス可能


13

暗号化されたホームフォルダーを持つアカウントを持っている場合、システムが最後に起動してからユーザーがまだログインしていない場合、ホームフォルダー内のユーザーのプレーンテキストデータにアクセスできません。パスワードを入力せずにユーザーのホームフォルダーにアクセスすることは実際には実行可能ではないため、これは私が期待したことです。

ただし、暗号化されたホームフォルダーを持つユーザーがログインしてからログアウトした場合、ホームフォルダー内のプレーンテキストデータには引き続き他のユーザーがアクセスできます。もちろん、十分なアクセス権限が必要です。

wユーザーを一覧表示せず、の出力sudo pgrep -u <username>は空です。これは、ユーザーに実行中のプロセスがないことを示します。

この動作の理由は何ですか?ユーザーがログアウトした後、ユーザーのホームフォルダーを単にロックしないのはなぜですか?


grep -Fe ecryptfs /var/log/auth.logユーザーがログアウトしたときの出力を含めてください。
デビッドフォースター

コマンドは次の出力を生成します。pastebin.com / jZXdahbJ Emacsによると、文字列「ecryptfs」を含む行は、そのコマンドを実行したときに生成された行のみです。
UTF-8

結果は予想どおり、Emacsがすでに示した行だけです:pastebin.com/VtV7iCDg
UTF-8

OK。一見の価値がありました。
デビッドフォースター

永続的なライブシステムでもこのバグに気付きました(暗号化されたホームを持つ2番目のユーザーを作成する試みで)。
sudodus

回答:


6

既知のバグ

正しく理解できれば、これは既知のバグです。

このリンクを参照してください:wiki.archlinux.org/index.php/ECryptfs

ピンクの段落までスクロールします

警告:残念ながら、自動アンマウントはsystemdで破損しやすく、バグが報告されます...

回避策

現在は、トレースを削除するためにシャットダウンまたはリブートした方がよいでしょう(ログアウトするだけで不十分です)。


「ログアウトするとユーザー間で情報が漏洩する」とはどういう意味ですか?十分な権限を持つ別のユーザーが最初のユーザーのホームディレクトリにあるプレーンテキストデータにアクセスできるということ以外に、何かが起こるということですか?(もちろん、これはログアウト前に既に可能です。)
UTF-8

1
よりよく説明しようとする:「ログアウトするだけでは不十分です」。(ログアウトは、暗号化されたホームを持つユーザーが使用したファイルの平文インスタンスを削除しません。したがって、少なくともこの他のユーザーがsudo特権を持っている場合、情報はこのユーザーからログインする別のユーザーに漏洩する可能性があります。ただし、シャットダウンまたは再起動すると、ファイルのクリアテキストインスタンスが消えます。
sudodus17年

3

これをテストまたは確認することはできませんが、使用していると仮定するとecryptfs(インストール時にUbuntuが提供するIIRC)、暗号化されたデータは隠しフォルダーに保存され、ログイン時にドライバー/home/.encryptfs/$USERを使用して実際のホームフォルダーの場所にマウントされますecryptfsに。

最も可能性が高いのは、ログアウトすると、自動的にそのディレクトリをアンマウントできないため、ファイルにアクセスできることです。これは...によって引き起こされる可能性があります

  • 悪い設定(おそらく、ログアウト時にアンマウントするように設定されているはずでしたが、そうではありませんでした)
  • 予期しないログアウトタイプ(これらのソリューションはDMログイン/ログアウトでは機能するが、それ以外ではうまく機能しない場合がある)
  • アンマウントがログアウトスクリプトによって処理される場合(必ずしもそうであるとは限りません)、アンマウントコマンドに先行する何かが失敗し、スクリプトが早期に終了する可能性があります。

これを確認するのに役立つことの1つsudo mount | grep homeは、ログイン前、ログイン後、ログアウト後に実行して、関係するhomeものがマウントされているかどうかを確認することです。/etc/fstab関連するエントリを調べることもできます。最後に、/home/.ecryptfs/$USER/.ecryptfs/自動マウント/アンマウントに関連する設定を含むいくつかの設定があります。

有用な情報ecryptfsは、この回答と常に役立つArchWikiで見つけることができます。


あなたが私に言ったことを試しました:pastebin.com/DrmEXQPV私は奇妙な方法でログアウトしませんが、標準のGUIの方法でログアウトします。ご覧のとおり、FSはまだマウントされています。あなたが言及した設定ファイルは空です。/etc/fstab私の唯一のデータパーティションをマウントする必要があるという1つのエントリと、/大学関連のネットワークリソースに関する1つのエントリを除いて、私のエントリには何もありません。別の方法でログアウトしてみてください。もしそうなら:どのように?
UTF-8

別の方法でログアウトするコメントは少し推測でした。デスクトップマネージャーは、ログインとログアウトに加えて、概念を複雑にし、どのイベントがトリガーされるのかわかりにくくします。実行されていないスクリプトまたはイベントがあった可能性があるため、私は疑問に思っていました。他の答えに基づいて、それはそのような問題ではなく、ecryptfsそれ自体に関係するものです。ただし、そのメモでは、sshテキスト端末を使用してログインしますか?配置する場所が見つかった場合、ログアウト時にアンマウントを処理するスクリプトを作成することができます。
krs013

3

編集/etc/systemd/logind.confおよび設定KillUserProcesses=yes

これは、バックグラウンドプログラムを壊すことに注意してください、screentmux、および同様の...

ここで、この質問について詳しく説明します。新しいsystemdサービスを定義する必要はありません(より正確には、ユーザーセッションの終了時ではなく、シャットダウンフックとして呼び出されるため、望ましい動作ではありません)。

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


暗号化されたホームを持つ2番目のユーザーがいる永続的なライブシステムでメソッドが機能するかどうかを確認します。
sudodus

申し訳ありませんが、暗号化されたホームを持つ2番目のユーザーがいる永続的なライブシステムでこのメソッドを機能させることできませんでした。(インストールしたシステムでソリューションをテストしていません。元の質問をした@ UTF-8に任せます。)
sudodus

私は自分のコンピューターでこれを修正することに興味はありません。とにかくそれを使用するのは私だけですが、暗号化されたホームフォルダーで2つのアカウントを使用したいのですが、どちらのアカウントのパスワードも誰も知らないのです。デフォルトで暗号化ボリュームを自動的にアンマウントしない理由に興味があります。ユーザーのコンテキストで実行されているアクティブなバックグラウンドプロセスをチェックし、ない場合はアンマウントできませんでしたか?
UTF-8

@ UTF-8、私はあなたに同意します。あなたが望むように機能するはずです。正しく理解できれば、これは既知のバグです。このリンクwiki.archlinux.org/index.php/ECryptfsを参照してください。ピンクの段落「警告:残念ながら、自動アンマウントはsystemdで破損しやすく、バグが報告されます」までスクロールします。-現時点では、トレースを削除するにはシャットダウンまたは再起動することをお勧めします(ログアウトするとユーザー間で情報が漏洩します。)
sudodus

@ UTF-8それは少なくともwheezy以来systemd / sessionの相互作用のバグです(systemdにぶら下げるだけで完全に快適です)-16.04で/etc/systemd/logind.confの変更が機能します(3人の異なるユーザーでテスト済み) 、さまざまなセッションなど...)
quadruplebucky

3

私はかなり長い間この問題を調査してきました。つまり、ユーザーのログアウト後も暗号化されていないファイルシステムはマウントされたままです。

「ecryptfs-migrate-home -u user」を使用してマウントを作成しました。指示に従い、ログアウト時の自動アンマウントを除くすべての機能。

/etc/pam.d/の設定ファイルをpam_ecryptfsのドキュメントと比較し、いくつかの違いを見つけました。ecryptfsは4つのpam.d構成ファイルにありましたが、pam_ecryptfsのドキュメントでは、ecryptfsの必要/サポート/サポートが必要なファイルは2つだけであることが示されています。

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

そこで、他の2つのインスタンスをコメントアウトして再起動しましたが、すべてが機能しました。ログイン時の自動マウントと、グラフィカルログインとコンソールログインの両方でのログアウト時の自動アンマウントです。(ルートアカウントから確認するために代替ttyを使用しました)

これは、ラップトップ、デスクトップ、virtualboxゲスト(Windowsホスト)の18.04 Lubuntuにあります。

他の人の経験に興味があります。

edit_1:表現を改善しました。edit_2:デスクトップとVBのテスト結果を追加しました。


これらの行を無効化/コメントアウトすると問題が発生しましたか?パスワードを変更しても、eCryptfsキーファイルは再ラップされますか?
Xen2050

これはLinux Mint 19でうまくいきました。他の詳細を追加するには、ecryptfsを参照する/etc/pam.dの4つの構成ファイルは次のとおりです。common-auth、common-password、common-session、common-session-非インタラクティブ。common-passwordおよびcommon-session-noninteractiveの行をコメントアウトすると、ログアウト時にアンマウントするという望ましい動作になりました。また、common-authのエントリは、ドキュメントによると想定されているため、「必須」ではなく「オプション」に設定されていました。しかし、私はこれをそのままにしました。
偶数コイル

@ Xen2050、返信が遅くなってすみません。行をコメント化して変更しても問題は検出されず、パスワードを変更しようとしてもいません。
レッドロック

パスワードの変更はテストすることが重要な場合があります。暗号化キーを新しいパスワードで自動的に再ラップする必要があるため、次回のログインは機能します。それが機能しない場合は、パスワードを以前のものに戻すだけで機能するはずです... [ただし、バックアップを作成しておくのは常に良いことです]
-Xen2050

1
@ Xen2050、パスワードを変更するテストを行いました。動いた。
レッドロック

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またはatジョブ(非対話型タスク)から任意のホームディレクトリにアクセスする必要がない場合は、次の行をコメントアウトするだけです。

session  optional        pam_ecryptfs.so unwrap

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

これにより、ユーザーがログアウトすると、暗号化されたすべてのホームディレクトリがアンマウントされます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.