ecryptfs:自动卸载不起作用

ecryptfs:自动卸载不起作用

我已经为用户 piranha3 设置了一个加密的主目录:

root@raspberrypi:~# ecryptfs-verify -u piranha3 -h
INFO: [/home/piranha3/.ecryptfs] exists
INFO: [/home/piranha3/.ecryptfs/Private.sig] exists
INFO: [/home/piranha3/.ecryptfs/Private.sig] contains [2] signatures
INFO: [/home/piranha3/.ecryptfs/Private.mnt] exists
INFO: [/home/piranha3] is a directory
INFO: [/home/piranha3/.ecryptfs/auto-mount] Automount is set
INFO: Mount point [/home/piranha3] is the user's home
INFO: Ownership [piranha3] of mount point [/home/piranha3] is correct
INFO: Configuration valid

但 piranha3 注销后目录未卸载:

root@raspberrypi:~# mount | grep ecryptfs
/home/.ecryptfs/piranha3/.Private on /home/piranha3 type ecryptfs (rw,nosuid,nodev,relatime,ecryptfs_fnek_sig=729061d7fa17b3a4,ecryptfs_sig=eb5ec4d9c13e2d74,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs)

lsof 输出:

lsof: WARNING: can't stat() cifs file system /media/cifs
      Output information may be incomplete.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.

系统信息:

root@raspberrypi:~# dpkg -l ecryptfs-utils
Deseado=desconocido(U)/Instalar/eliminaR/Purgar/retener(H)
| Estado=No/Inst/ficheros-Conf/desempaqUetado/medio-conF/medio-inst(H)/espera-disparo(W)/pendienTe-disparo
|/ Err?=(ninguno)/requiere-Reinst (Estado,Err: mayúsc.=malo)
||/ Nombre                   Versión           Arquitectura      Descripción
+++-========================-=================-=================-======================================================
ii  ecryptfs-utils           103-5             armhf             ecryptfs cryptographic filesystem (utilities)
root@raspberrypi:~# uname -a
Linux raspberrypi 4.1.13-v7+ #826 SMP PREEMPT Fri Nov 13 20:19:03 GMT 2015 armv7l GNU/Linux

最后关于 PAM:

root@raspberrypi:~# grep -r ecryptfs /etc/pam.d
/etc/pam.d/common-session:session       optional        pam_ecryptfs.so unwrap
/etc/pam.d/common-password:password     optional        pam_ecryptfs.so 
/etc/pam.d/common-auth:auth     optional        pam_ecryptfs.so unwrap
/etc/pam.d/common-session-noninteractive:session        optional        pam_ecryptfs.so unwrap

为什么 /home/directory 没有被卸载?

答案1

请打开终端并按照这些说明进行操作。

cd /etc/systemd/system
sudo nano ecryptfs-umount-private.service

将以下内容输入到文件中。

[Unit]
Description=Umount Private directory
Before=systemd-exit.service
DefaultDependencies=no
Requires=shutdown.target
After=shutdown.target

[Service]
Type=oneshot
ExecStart=/usr/bin/ecryptfs-umount-private

[Install]
WantedBy=exit.target

Ctrl+ X,然后按yEnter键保存文件。

sudo systemctl daemon-reload
sudo systemctl enable ecryptfs-umount-private.service

我已经测试过这个并且它对我有用。

我做的另一件事可能有帮助也可能没有帮助,那就是编辑/etc/systemd/logind.conf该行并将其更改#KillUserProcesses=noKillUserProcesses=yes.

PS 我通过切换用户、注销、重新登录到主帐户然后使用 root 进行测试来测试这一点ls /home/folder name。我注意到有一点延迟,但这对我在带有 Gnome 的 Ubuntu 17.04 上有效。

答案2

据askubuntu 的一位用户称,这是一个已知的错误:https://askubuntu.com/a/932650。不知道是真是假,但我找到了解决方法。

我在 .bash_logout (例如 vim ~/.bash_logout)末尾添加了以下行:

(sleep 10; ecryptfs-umount-private) &

当我注销(ssh 连接)时,我看到消息“会话仍然打开,未卸载”,但我的主目录无论如何都会被卸载/加密。

相关内容