「Dm-crypt/ログイン時にマウント」の版間の差分
(→アンマウント後のロック: 翻訳を修正) |
(→アンマウント後のロック: 訳を修正) |
||
63行目: | 63行目: | ||
}} |
}} |
||
− | == アンマウント後 |
+ | == アンマウント後にロックする == |
− | アンマウント後も |
+ | アンマウント後もデバイスはアンロックされたままであり、パスワードを再入力せずにマウントすることができてしまいます。デバイスがアンロックされたときに起動し ({{ic|1=BindsTo=dev-mapper-home\x2d''username''.device}})、その途中でデバイスをロックし ({{ic|1=ExecStop=cryptsetup close}})、デバイスがアンマウントされた後に終了する ({{ic|1=Requires,Before=home-''username''.mount}}) ようなサービスを作成して[[有効化]]することができます: |
{{hc|/etc/systemd/system/cryptsetup-''username''.service|2= |
{{hc|/etc/systemd/system/cryptsetup-''username''.service|2= |
||
88行目: | 88行目: | ||
}} |
}} |
||
− | {{Note|{{ic|dev-''PARTITION''}} は、{{ic|systemd-escape -p /dev/''PARTITION''}} の結果です。}} |
+ | {{Note|{{ic|dev-''PARTITION''}} は、{{ic|systemd-escape -p /dev/''PARTITION''}} の出力結果です。}} |
2023年11月5日 (日) 11:25時点における版
関連記事
PAM および systemd を設定して、所有者がログインしたときに dm-crypt 暗号化されたホーム パーティションを自動的にマウントし、ログアウト時にアンマウントするようにすることができます。
このチュートリアルでは、dm-crypt/root 以外のファイルシステムの暗号化 で説明されているように、暗号化されたパーティションがすでに作成されていることを前提としています。
ログイン時にロックを解除する
pam_exec は、ログイン時にデバイスのロックを解除するために使用できます。/etc/pam.d/system-login
を編集し、auth include system-auth
の後に太字で強調された以下の行を追加します。
/etc/pam.d/system-login
... auth include system-auth auth optional pam_exec.so expose_authtok /etc/pam_cryptsetup.sh ...
次に、前述のスクリプトを作成します。
/etc/pam_cryptsetup.sh
#!/bin/sh CRYPT_USER="username" PARTITION="/dev/sdXY" NAME="home-$CRYPT_USER" if [ "$PAM_USER" = "$CRYPT_USER" ] && [ ! -e "/dev/mapper/$NAME" ]; then /usr/bin/cryptsetup open "$PARTITION" "$NAME" fi
スクリプトを 実行可能属性 にします。
自動マウントとアンマウント
systemd-logind は、ユーザーに対して少なくとも 1 つのセッションがアクティブである限り、user@1000.service
を維持します。最初のログイン成功後に自動的に開始され、最後のセッションからのログアウト後に停止されます。したがって、マップされたボリュームの systemd.mount(5) ユニットを作成して 有効化 し、それを user@1000.service
に接続して、次のことを行い、自動的にマウントおよびアンマウントされるようにします。
/etc/systemd/system/home-username.mount
[Unit] Requires=user@1000.service Before=user@1000.service [Mount] Where=/home/username What=/dev/mapper/home-username Type=btrfs Options=defaults,relatime,compress=zstd [Install] RequiredBy=user@1000.service
アンマウント後にロックする
アンマウント後もデバイスはアンロックされたままであり、パスワードを再入力せずにマウントすることができてしまいます。デバイスがアンロックされたときに起動し (BindsTo=dev-mapper-home\x2dusername.device
)、その途中でデバイスをロックし (ExecStop=cryptsetup close
)、デバイスがアンマウントされた後に終了する (Requires,Before=home-username.mount
) ようなサービスを作成して有効化することができます:
/etc/systemd/system/cryptsetup-username.service
[Unit] DefaultDependencies=no BindsTo=dev-PARTITION.device After=dev-PARTITION.device BindsTo=dev-mapper-home\x2dusername.device Requires=home-username.mount Before=home-username.mount Conflicts=umount.target Before=umount.target [Service] Type=oneshot RemainAfterExit=yes TimeoutSec=0 ExecStop=/usr/bin/cryptsetup close home-username [Install] RequiredBy=dev-mapper-home\x2dusername.device