以 root 身份执行脚本并解密主文件夹

以 root 身份执行脚本并解密主文件夹

是否有可能在启动时以 root 身份运行脚本,同时还能够访问加密主目录中的文件?

我知道/etc/rc.local哪些可以以 root 身份执行脚本,但由于用户尚未登录,我无法访问主目录中的文件

我还知道启动 *.desktop 文件~/.config/autostart/可以访问主目录,因为它们是在登录后执行的,但它们不是以 root 身份运行的。

我想使用加密主目录中的密钥文件自动挂载我的 LUKS 加密分区。命令mountcryptsetup需要 root 权限。

我不想将这些命令排除在需要 sudo 权限之外,因此此选项不可用。

答案1

听起来你已经差不多知道答案了:

  1. 必须等到用户登录后才能解密他们的主页
  2. 然后必须以 root 身份运行命令,同时仍然需要sudo

  • 我认为您只需要在登录后弹出一个终端或窗口来请求 sudo 权限。

    只需创建一个 .desktop 文件,~/.config/autostart运行以 开头的命令/脚本sudo,类似于

    Exec=sh -c "sudo cryptsetup... && sudo mount..."
    

    如果 plainsudo不会弹出“输入密码”提示,那么gksu听起来就像您想要使用的工具sudo

  • 或者修改你的 sudo/sudoers 以仅运行你的特定脚本文件而不要求输入密码,仅适用于你的用户,如下所示(但请参阅man sudoers页面和信息页面):

    myuser ALL=(root) NOPASSWD: /home/myuser/onlythis
    
  • 或者创建一个 PAM 模块/插件来在登录时自动使用您的密码执行操作是另一个更复杂的想法)

相关内容