是否有可能在启动时以 root 身份运行脚本,同时还能够访问加密主目录中的文件?
我知道/etc/rc.local
哪些可以以 root 身份执行脚本,但由于用户尚未登录,我无法访问主目录中的文件
我还知道启动 *.desktop 文件~/.config/autostart/
可以访问主目录,因为它们是在登录后执行的,但它们不是以 root 身份运行的。
我想使用加密主目录中的密钥文件自动挂载我的 LUKS 加密分区。命令mount
和cryptsetup
需要 root 权限。
我不想将这些命令排除在需要 sudo 权限之外,因此此选项不可用。
答案1
听起来你已经差不多知道答案了:
- 必须等到用户登录后才能解密他们的主页
- 然后必须以 root 身份运行命令,同时仍然需要
sudo
我认为您只需要在登录后弹出一个终端或窗口来请求 sudo 权限。
只需创建一个 .desktop 文件,
~/.config/autostart
运行以 开头的命令/脚本sudo
,类似于Exec=sh -c "sudo cryptsetup... && sudo mount..."
如果 plain
sudo
不会弹出“输入密码”提示,那么gksu
听起来就像您想要使用的工具sudo
。或者修改你的 sudo/sudoers 以仅运行你的特定脚本文件而不要求输入密码,仅适用于你的用户,如下所示(但请参阅
man sudoers
页面和信息页面):myuser ALL=(root) NOPASSWD: /home/myuser/onlythis
或者创建一个 PAM 模块/插件来在登录时自动使用您的密码执行操作是另一个更复杂的想法)