在安装完eCryptfs后需要加载eCryptfs内核模块 sudo modprobe ecryptfs
ecryptfs-setup-private [-OPTIONS] 这会创建一个~/Private目录来保存加密信息,该程序可以由非root用户运行,这将使该目录的数据从系统上的其他用户变为私有状态。该操作要求用户输入当前用户密码以及用于eCryptfs的挂载密码passphrase
–undo 显示怎样撤销加密的私人设置。
In the event that you want to remove your eCryptfs Private Directory setup,you will need to very carefully perform the following actions manually:
Obtain your Private directory mountpoint $ PRIVATE=cat ~/.ecryptfs/Private.mnt 2>/dev/null || echo $HOME/PrivateEnsure that you have moved all relevant data out of your $PRIVATE directoryUnmount your encrypted private directory $ ecryptfs-umount-privateMake your Private directory writable again chmod700PRIVATERemove PRIVATE, /.Private, /.ecryptfsNote:THISISVERYPERMANENT,BEVERYCAREFUL rm -rf $PRIVATE ~/.Private ~/.ecryptfsUninstall the utilities (this is specific to your Linux distribution) $ sudo apt-get remove ecryptfs-utils libecryptfs0-n,–no-fnek 不加密文件名,否则在支持文件名加密的操作系统上文件名将会被加密。 –nopwcheck 不检查给定登录密码的合法性(对LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)用户有用)。 –noautomount 设置此用户的加密私人目录在登录时不自动挂载。 –noautoumount 设置此用户的加密私人目录在注销时不自动卸载。
挂载或者卸载当前用户下的~/Private目录。 ecryptfs-mount-private 会交互提示用户的登录密码。 ecryptfs-umount-private 会卸载当前用户的私人目录并且清除所有位于用户内核keyring的相关的key。
mount -t ecryptfs [SRC DIR] [DST DIR] -o [OPTIONS]
umount [DST DIR]
适用于eCryptfs内核模块的参数
ecryptfs_sig=(fekek_sig) 指定挂载认证令牌的签名。认证令牌必须在执行挂载前位于内核keyring中。ecryptfs-manager或者eCryptfs mount helper可以构建认证令牌并且在挂载前将其添加到内核keyring中。
ecryptfs_fnek_sig=(fnek_sig) 指定用于文件名加密的挂载认证令牌的签名,认证令牌必须在执行挂载前位于内核keyring中。
ecryptfs_cipher=(cipher) 指定在每个文件的基础上使用的对称密码。
ecryptfs_key_bytes=(key_bytes) 指定所选密码使用的密钥大小。如果密码只有一个密钥大小那么密钥大小就不需要指定。
ecryptfs_passthrough 允许从eCryptfs挂载中读取和写入非eCryptfs文件。这个选项默认关闭。
no_sig_cache 不检查挂载密钥签名与用户的~/.ecryptfs/sig-cache.txt文件中的值。这对于没有交互的设置脚本有用,这样如果密钥签名不在缓存中,mount helper不会停止和提示用户。
ecryptfs_encrypted_view 这个option在低挂载点提供了一个eCryptfs文件统一的加密文件格式。目前它只在包含带有存储在扩展属性中的元数据的文件的低挂载点有用。在高挂载点读取文件时,该文件的加密版本将会以文件头的元数据而不是xattr呈现。当启动该选项时,文件将无法打开进行写入。
ecryptfs_xattr 将元数据存储在低文件的扩展属性中而不是低文件的开头区域
verbose 将ecryptfs信息记录到/var/log/messages。不要在verbose-mode运行eCryptfs,除非你是为了开发而这样做,因为在这种情况下,密码将被写入系统日志中。
适用于eCryptfs mount helper的参数
key=(keytype):[KEY MODULE OPTIONS] 指定挂载eCryptfs时使用的密钥类型。
ecryptfs_enable_filename_crypto=(y/N) 指定是否开启文件名加密。如果不开启,mount helper不会提示用户文件名加密密钥签名。
verbosity=0/1 如果verbosity=1,mount helper会要求你输入缺省的值(默认)。否则如果verbosity=0,它不会要求你输入,并且如果需要的值缺失它会失败。
适用于在参数名称的前缀中的密钥模块有别名的个人密钥模块。密钥模块是可插拔的并且在任何给定的系统中可用的密钥模块取决于无论什么被安装到/usr/lib*/ecryptfs/中。默认情况下,至少包含"passphrase"和"openssl"。
passphrase_passwd=(passphrase) 实际的密码是passphrase。因为密码对一些程序(例如Unix下的ps)是可见的,所以这种形式只应该在安全不重要的地方使用。
passphrase_passwd_file=(filename) 密码应该被指定在一个文件(以passwd=(passphrase)格式)中。强烈建议将这个文件存储在一个安全的媒介中(如个人usb密钥)。
passphrase_passwd_fd=(file descriptor) 密码通过指定的文件描述符指定。
passphrase_salt=(hex value) salt应该被指定为一个16位十六进制的值(
关于salt见wikipedia )
openssl_keyfile=(filename) 这里的文件名应该是一个包含RSA SSL密钥的文件的文件名。
openssl_passwd_file=(filename) 密码应该被指定在一个文件(以openssl_passwd=(openssl_password)格式)中。强烈建议将这个文件存储在一个安全的媒介中(如个人usb密钥)。
openssl_passwd_fd=(file descriptor) 密码通过指定的文件描述符指定。
openssl_passwd=(password) 密码可以在命令行指定。因为密码在进程列表中是可见的,所以强烈推荐只用这个选项来测试。
ecryptfs-add-passphrase[--fnek]
– fnek 与输入的passphrase相关的文件名加密密钥也会被添加到keyring中。
ecryptfs-find cleartext-filename ecryptfs-find ECRYPTFS_FNEK_ENCRYPTED.fwBGx18a.UcYl18CF7VKLMSDuEadV
这个程序会尝试将加密的文件名与其未加密的对应文件进行匹配,并尝试将未加密的文件名与其加密的对应文件进行匹配。
注意:
eCryptfs文件系统必须已经被挂载它使用 ls(1) 来确定inode它使用 find(1) 来定位inodeecryptfs-insert-wrapped-passphrase-into-keyring [file]
ecryptfs-manager 显示如下:
eCryptfs key management menu
1.Add passphrase key to keyring 2.Add public key to keyring 3.Generate new public/private keypair 4.Exit
Make selection
输入对应的数字即可进入对应的选项。
ecryptfs-migrate-home [-u|--user USER]
警告:对未加密的数据备份到其他系统或者外部媒介。这个脚本非常危险,如果发生错误,可能会导致数据丢失,或者将USER锁定在系统外! 需要2.5倍当前home目录大小的空闲磁盘空间
ecryptfs-recover-private [--rw] [encrypted private dir]
此程序用来帮助eCryptfs从其加密的home或者私人目录分区恢复数据。从LiveISO或恢复镜像运行它非常有用。 这个程序可以指定一个已经加密的目录目录。如果没指定,它会在整个系统上搜索通过ecryptfs-setup-private配置的加密私人目录
ecryptfs-wrap-passphrase [file] 需要指定封装密码,并且会将其加密写入到文件中。
ecryptfs-rewrap-passphrase [file]
ecryptfs-unwrap-passphrase [file]
该程序使用指定的封装密码从文件中解开eCryptfs挂载密码,并将解密结果显示出来
ecryptfs-rewrite-file [file1] [file2] [file3] ...
参数为一个或者多个文件/目录/符号链接。先将它们移动到一个临时文件,然后再移回去。
ecryptfs-setup-swap [-f|--force]
这个脚本会自动检测当前存在的交换分区或者交换文件,然后加密它们。加密交换空间对合作使用eCryptfs的系统是必不可少的,因为未加密的内容会存在在系统内存中,可能会被交换到磁盘中。
ecryptfs-stat filename
此程序将显示加密eCryptfs文件及其属性的统计信息。
ecryptfs-verify [-h|--home] [-p|--private] [-e|--filenames-encrypted] [-n|--filenames-not-encrypted] [-u|--user USER] [--help]
-h, –home 如果home正解配置为加密,则为True,否则为False。
-p, –private 如果一个非home正解配置为加密,则为True,否则为False。
-e, –filenames-encrypted 如果文件名被设置为加密为True,否则为False。
-n, –filenames-not-encrypted 如果文件名没有被加密为True,否则为False。
-u, –user USER 默认为检查当前用户的配置,用此选项覆盖默认选项。
–help 使用帮助。
ecryptfsd
ecryptfsd是一个用户空间守护进程,它用于用户执行eCryptfs挂载点下的文件操作。它为Ceryptfs内核模块提供公钥请求;这些请求通过netlink在文件打开时发送。只有在使用公共密钥模块完成挂载时才需要运行ecryptfsd. ecryptfsd将注册自己的内核作为守护进程,该守护进程为该守护进程的用户上下文中所有的eCryptfs文件系统请求提供服务。