登录后自动挂载 veracrypt 分区 - 无需 root 密码

登录后自动挂载 veracrypt 分区 - 无需 root 密码

我正在一台基于 debian 的 Linux 机器(MX Linux)上工作,试图在用户登录后自动执行 veracrypt 加密分区的挂载过程 - 但它不起作用,我不知道该怎么做了。

登录后,系统会要求我输入分区的 veracrypt 密码,仅此而已。没有root密码sudo,没有类似的东西。

我的设置:

1)我创建了这个小型 shell 脚本,它将启动 veracrypt、询问密码并将加密分区作为设备提供/dev/mapper/veracrypt1

#!/bin/bash
sudo veracrypt --filesystem=none --mount /dev/nvme0n1p8 /media/Data

--mount据我所知,由于 - 选项的第二个参数被跳过--filesystem=none,没关系,因为接下来:

2)此行将/etc/fstab安装该设备并赋予其读写权限:

/dev/mapper/veracrypt1 /media/Username/Data auto nosuid,nodev,nofail,discard 0 0

...一切按预期进行 - 但除了 veracrypt 密码之外,我还需要在过程中多次输入 sudo/root 密码。这就是我想要摆脱的。

所以我做了:

3)使用/etc/fstab,挂载使用udisks2。弹出窗口要求输入 root 凭据,这org.freedesktop.udisks2.filesystem-mount-system是此处使用的方法。我的电脑上有一个 polkit-policy,位于:/usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy

在这个文件中,列出了方法 - 在其下方,有三项中的授权配置allow_anyallow_inactiveallow_active。我将它们全部设置为,yes现在,如果/etc/fstab挂载/dev/mapper/veracrypt1,则不需要 root 密码。

但是启动上面的 shell 脚本时我仍然需要输入 root 密码。所以...

4)我使用visudo并输入了这个,以允许无需密码的命令。

Username ALL=(ALL) NOPASSWD: /usr/bin/mount, /bin/mount, /usr/bin/veracrypt, /home/Username/mount_vc.sh

我不确定我到底需要什么,所以我输入了mount命令和veracrypt。我甚至在那里添加了 shell 脚本,以防万一它能有所帮助。但没用。

(真正的 sudoers 文件包含一些我想在没有密码的情况下使用的进一步命令,所以这只是相关部分。)

5)最后,我进入系统的启动配置并添加了一个指向 shell 脚本的条目并在用户登录后运行它。

理论上应该没问题。但在现实世界中,它什么也不做。

登录后调用该脚本。我尝试输入一行,该touch行将在我的主目录中创建一个文件。该文件已创建。但 veracrypt 命令不起作用。

手动调用 shell 脚本是可行的,但仍然需要 root 密码。我使用 找到它veracryptwhich这是我在 中输入的路径/etc/sudoers。它不起作用。

如上所述,我在这个 sudoers-line 中还有其他命令 - 它们都可以工作。那里列出的其他命令可以在没有 sudo/root 密码的情况下调用。Veracrypt 不行。

“某些东西”工作不正常,但是花了几个小时之后,我还是不知道是什么。

如何在登录时运行我的脚本,veracrypt自动启动命令 - 而无需 sudo/root 密码来启动命令?

编辑,澄清:

如果我登录,没有什么发生了。没有启动 veracrypt,也没有要求我输入 root 密码 - 什么都没有发生。

如果我手动启动脚本,系统会先要求我输入密码,然后启动 veracrypt。如果我在那里输入密码,则分区已正确安装。

编辑,我的最后一次尝试:

我对 shell 脚本中的 感到疑惑sudo。修改了我的脚本后/etc/sudoers,我删除了sudo并尝试不使用它。登录后会发生这种情况:

首先,veracrypt 启动了!无需其他提示,我就可以输入分区的 veracrypt 密码。

但是,输入 veracrypt 密码后,弹出窗口要求我输入 root 密码。Veracrypt 正在后台等待,尝试挂载分区 - 但直到我输入 root 密码后才能挂载。

我没有任何主意并且有些沮丧 - 我到底要在里面放些什么sudoers才能让我的系统关闭并且不要求该命令的 root 权限?!

有趣的事实:我曾在另一台机器上运行过这个。它不再存在,但不知何故我让它工作了。现在,我不知道哪里出了问题。

编辑:解决方法,有点:

当然,这是有效的:我已将我的用户添加到sudo组中。

现在一切都正常了,但我对这个解决方案不太满意。如果能找到另一种方法,摆脱密码提示就好了——无需加入群组sudo

相关内容