我创建了一个加密驱动器,用于存储敏感文件。我想知道是否有命令行工具可以卸载加密驱动器并锁定它。如果有,我打算创建一个启动器放在我的 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 来自动化