使用账户密码登录时自动挂载 Truecrypt 卷

使用账户密码登录时自动挂载 Truecrypt 卷

我使用的是 Linux Mint Debian 版本。我希望使用我的登录密码登录时自动挂载 Truecrypt 卷(主目录中的文件或单独的分区)。这可能吗?如果不行,我如何让它提示输入密码并在登录后直接挂载?

答案1

Debian 使用类似 Sys-V 的 init 系统在系统运行级别改变时(例如在启动和关闭时)执行命令。

如果你希望添加一个在机器启动时启动的新服务,你应该将必要的脚本添加到目录中/etc/init.d/。该目录中已有的许多脚本将为您提供可执行的操作的示例。

这是一个非常简单的脚本,它分为两部分:始终运行的代码和在使用“start”或“stop”调用时运行的代码。

#! /bin/sh
# /etc/init.d/blah
#

# Some things that run always
touch /var/lock/blah

# Carry out specific functions when asked to by the system
case "$1" in
  start)
    echo "Starting script blah "
    echo "Could do more here"
    ;;
  stop)
    echo "Stopping script blah"
    echo "Could do more here"
    ;;
  *)
    echo "Usage: /etc/init.d/blah {start|stop}"
    exit 1
    ;;
esac

exit 0

将文件保存到正确位置后,请通过运行“chmod 755 /etc/init.d/blah“。

然后,您需要添加适当的符号链接,以便在系统关闭或启动时执行该脚本。

最简单的方法是使用 Debian 特定的命令更新-rc.d

root@skx:~# update-rc.d blah defaults 为 /etc/init.d/blah 添加系统启动... /etc/rc0.d/K20blah -> ../init.d/blah
/etc/rc1.d/K20blah -> ../init.d/blah /etc/rc6.d/K20blah -> ../init.d/blah /etc/rc2.d/S20blah -> ../init.d/blah /etc/rc3.d/S20blah -> ../init.d/blah
/etc/rc4.d/S20blah -> ../init.d/blah /etc/rc5.d/S20blah -> ../init.d/blah

如果您希望在将来运行中从启动序列中删除该脚本:

root@skx:/etc/rc2.d# update-rc.d -f blah remove update-rc.d: /etc/init.d/blah 在 rc.d 清除期间存在(继续)删除 /etc/init.d/blah 的任何系统启动链接... /etc/rc0.d/K20blah
/etc/rc1.d/K20blah /etc/rc2.d/S20blah /etc/rc3.d/S20blah
/etc/rc4.d/S20blah /etc/rc5.d/S20blah /etc/rc6.d/K20blah

这将使脚本本身保持不变,只需删除导致其执行的链接。

您可以通过运行“找到此命令的更多详细信息”更新rc.d“。

这些只是示例。只需生成您自己的脚本来安装卷并提供密码(如果需要)。当然,如果您这样做,那么您的密码将以纯文本形式存储在您的硬盘上。当然,您可以修改脚本以提示输入密码。

来源

答案2

我认为您需要修补您的登录程序 -- loginxdm/ gdm/ kdm、 ... - 以安装卷或将输入的密码传递给另一个进程。以明文形式将密码传递给另一个进程似乎存在安全风险。没有办法

登录后提示输入密码似乎很简单,也更安全。第一次登录时(或在您决定自动或手动卸载加密卷后登录时)输入两次密码会有点麻烦。

答案究竟是什么样的取决于您的登录方式。每个图形桌面系统可能都有不同的方法来指定要运行的程序。如何在登录您最喜欢的 GUI 桌面系统时运行命令值得再问一个问题。您当前问题的关键是您可以创建一个脚本来检查您的 Truecrypt 卷是否已安装,如果没有,则安装它,并配置您的登录以运行此脚本,该脚本看起来会像下面这样简单:

#!/bin/sh

your_truecrypt_volume_mounted || mount_true_crypt_volume

其中your_truecrypt_volume_mounted是 shell 函数或命令,用于检查您是否已安装加密卷(可能只是grep输出mount),mount_true_crypt_volume是安装卷的命令或 shell 函数。如果您正在登录图形桌面(Gnome/KDM/XFCE/whatever),您可以在终端应用程序中运行 mount 命令,以便提示用户输入密码。您可以使用DISPLAY环境变量来提示您正在运行 X Windows 会话,或者如果您想重复使用它,请将其作为脚本的命令行选项(无需在多个位置指定您的安装路径等)。

要登录虚拟控制台,您可以在文件中运行相同的脚本~/.bash_login,假设默认值bash是您的 shell。

您可能已经知道挂载 Truecrypt 卷和检查 Truecrypt 卷存在的命令是什么。

相关内容