有没有办法从命令行锁定加密驱动器?

有没有办法从命令行锁定加密驱动器?

我创建了一个加密驱动器,用于存储敏感文件。我想知道是否有命令行工具可以卸载加密驱动器并锁定它。如果有,我打算创建一个启动器放在我的 Dock 中,这样我就可以单击它并执行命令,而无需打开命令行。

我使用命令sudo apt-get install cryptsetup进入应用程序Disks并选择我想要格式化的磁盘并选择Encrypted, compatible with Linux system (LUKS, ext4).

我在gedit名为 的文件中创建了一个文件lock并将其复制到其中,/bin以便可以将其作为单个命令运行。文件中的内容如下:

#!/bin/bash
sudo umount /mnt/luks-79a537ae-8eed-42a3-be85-7c54b920d4a2
sudo cryptsetup luksClose /dev/mapper/luks-79a537ae-8eed-42a3-be85-7c54b920d4a2

我运行sudo visudo并将此行添加到文件中:

amolith ALL=(ALL) NOPASSWD: /usr/bin/apt-get, /sbin/cryptsetup, /bin/umount, /bin/lock

我保存了它,退出了,现在,当我运行时lock,仍然提示我输入密码,即使命令现在不需要 root 密码(AFAIK)。

答案1

是的,你正在使用 LUKS 。你需要知道分区的名称、挂载的位置以及 crypt 名称,它位于/dev/mapper

安装(解密)

cryptsetup luksOpen /dev/sdxy name_of_crypt
mount /dev/mapper/name_of_crypt /mount_point

卸载(加密)

umount /mount_point
cryptsetup luksClose name_of_crypt

您可能需要以 root 身份运行这些命令,即 sudo,因此我的建议是配置 sudo 以在没有密码的情况下运行 cryptsetup。

注意:编写脚本挂载/卸载加密数据首先违背了加密的目的。我会保持原样 ;)

如何编写涉及 dm-crypt / luks 卷的挂载命令脚本但在我看来,这个问题的答案是不安全的,因为你的密码现在是纯文本。你也可以使用 expect 来自动化

https://www.lifewire.com/linus-unix-command-expect-2201096

相关内容