在 Linux 中加密和解密目录

linuxopen sourceoperating system更新于 2026/1/25 6:37:17

在 Linux 中加密和解密目录的方法有很多,但其中一种常用的方法是使用"ecryptfs"实用程序。此实用程序允许您使用用户的登录密码加密目录,并在用户登录时自动解密目录。

Gpgtar

gpgtar 是一个实用程序,允许您使用 GNU Privacy Guard (GPG) 加密软件加密和解密 tar 压缩包。gpgtar 使用 GPG 加密 tar 压缩包中的文件,然后创建一个包含加密文件的新 tar 压缩包。这使您可以轻松地一次性加密大量文件和目录。

要使用 gpgtar 创建加密的 tar 归档文件,您可以使用以下命令:-

gpgtar -c -f [加密的 tar 文件] [要归档的文件]

例如,如果您想从目录"dir1"和"dir2"创建一个名为"my_files.tar.gpg"的加密 tar 归档文件,您可以使用以下命令:-

gpgtar -c -f my_files.tar.gpg dir1 dir2

要解密并提取加密 tar 归档文件中的文件,您可以使用以下命令:-

gpgtar -x -f [加密的 tar 文件]

例如,要解密并提取要从存档"my_files.tar.gpg"中获取文件,您可以使用以下命令:-

gpgtar -x -f my_files.tar.gpg

使用对称密钥加密目录

使用对称密钥加密目录需要使用单个密钥来加密和解密数据。此密钥称为"对称密钥",应保密,因为任何有权访问它的人都可以解密数据。

在 Linux 中使用对称密钥加密目录的一种方法是同时使用"tar"和"gpg"实用程序。

首先,使用"tar"命令创建要加密目录的存档。例如 -

tar -cvf directory.tar /path/to/directory

然后,使用"gpg"命令通过对称密钥加密 tar 压缩包。例如 -

gpg --symmetric --cipher-algo AES256 directory.tar

这将提示您输入并验证密码,该密码将用作对称密钥。

要解密目录,您首先需要使用"gpg"命令通过对称密钥解密压缩包 -

gpg --decrypt directory.tar.gpg > directory.tar

然后,使用"tar"命令从解密的存档中提取文件 -

tar -xvf directory.tar

列出加密目录

目录加密后,通常在解密之前无法读取。因此,如果不先解密,就无法列出加密目录的内容。

如果您使用 ecryptfs 方法加密了目录,则需要挂载该目录才能列出其内容。您可以通过运行以下命令来执行此操作 -

sudo mount -t ecryptfs [源目录] [目标目录]

然后,您可以使用以下命令列出目录的内容 -

ls [目标目录]

例如,如果您已加密目录"my_files"并将其挂载到"encrypted_files",则可以使用以下命令列出目录的内容 -

ls /home/user/encrypted_files

如果您已使用我之前描述的对称密钥加密目录,则需要先解密该目录,然后才能列出目录的内容。

gpg --decrypt directory.tar.gpg > directory.tar

然后使用"tar"命令从解密的存档中提取文件 -

tar -tf directory.tar

此命令将列出存档中包含的文件和目录。

请注意,如果您没有解密密钥或密码,则无法列出加密目录的内容。

解密加密目录

解密加密目录的过程取决于加密目录所使用的方法。

如果您使用 ecryptfs 方法加密了目录,则需要卸载该目录才能解密。您可以通过运行以下命令来执行此操作:-

sudo umount [目标目录]

例如,如果您已加密目录"my_files"并将其挂载到"encrypted_files",则可以使用以下命令解密该目录 &miinus;

sudo umount /home/user/encrypted_files

如果您已使用前面描述的方法使用对称密钥加密目录,则可以使用 gpg 命令解密目录,并使用对称密钥解密存档文件 -

gpg --decrypt directory.tar.gpg > directory.tar

然后使用"tar"命令从解密后的存档中提取文件 -

tar -xf directory.tar

这会将存档中包含的文件和目录提取到当前目录。

Encfs

encfs 是一个实用程序,允许您使用 FUSE 文件系统加密目录及其内容。这意味着加密的文件和目录在访问时会自动解密并挂载为虚拟文件系统,不再使用时会自动加密并卸载。

要使用 encfs 创建加密目录,您可以使用以下命令:-

encfs [源目录] [目标目录]

例如,如果您想加密目录"my_files"并将其挂载到"encrypted_files",您可以使用以下命令:-

encfs /home/user/my_files /home/user/encrypted_files

运行此命令时,encfs 将提示您创建一个用于加密和解密文件的新密码。每次访问加密目录时都会使用此密码。

您也可以使用选项 --standard 在标准模式下运行 encfs 并使用配置文件。

encfs --standard [源目录] [目标目录]

卸载

在 Linux 中,卸载文件系统是指将已挂载的文件系统与目录层次结构断开连接,使其无法再被系统访问的过程。此操作使用"umount"命令完成。

卸载文件系统的基本语法是:-

umount [挂载点]

例如,如果您已在目录"/mnt/data"上挂载了一个文件系统,则可以使用以下命令卸载它:-

umount /mnt/data

如果您正在卸载当前正在使用的文件系统,则可能会收到错误消息。在这种情况下,您可以使用 -l 选项强制卸载。

umount -l [挂载点]

例如,如果您想强制卸载目录"/mnt/data"上的文件系统,您可以使用以下命令 -

umount -l /mnt/data

重新挂载

在 Linux 中,重新挂载文件系统是指在卸载之前挂载的文件系统后,将其重新连接到目录层次结构的过程。这可以通过"mount"命令完成。

重新挂载文件系统的基本语法是:-

mount -o remount [挂载点]

例如,如果您卸载了目录"/mnt/data"上的文件系统,并希望重新挂载它,则可以使用以下命令:-

mount -o remount /mnt/data

您也可以在重新挂载文件系统时更改选项。例如,如果您希望重新挂载具有只读访问权限的文件系统,则可以使用以下命令:-

mount -o remount,ro /mnt/data

总结

总而言之,在 Linux 中有几种加密和解密目录的方法。一些常用的方法包括使用 ecryptfs 实用程序、gpgtar、encfs 和 dmcrypt。每种方法都有各自的优缺点,具体方法取决于您的具体需求。


相关文章


有用资源