在没有 sudo 权限的情况下运行 cryptsetup 命令

在没有 sudo 权限的情况下运行 cryptsetup 命令

我正在试图弄清楚如何cryptsetup在不使用的情况下运行命令sudo

这样,非 root 用户就可以luks在需要时运行脚本来解锁和挂载两个加密驱动器,而无需sudo权限,以及运行另一个脚本来锁定和卸载驱动器。驱动器需要挂载只有在需要的时候,所以我想在脚本中执行挂载和解密,而不是在启动时使用/etc/fstab/etc/crypttab。所以我需要能够运行以下命令没有 sudo, 像这样:

cryptsetup luksOpen /dev/dev1 mapper_name1

cryptsetup luksOpen /dev/dev2 mapper_name2

cryptsetup luksClose mapper_name1

cryptsetup luksClose mapper_name2

我知道挂载和授予驱动器非 root 权限涉及在挂载点和驱动器内的文件上运行chmodchown。我需要知道的是如何能够cryptsetup在不需要 的情况下运行命令sudo

答案1

您可以授予您的用户(或群组)sudo仅对这些命令的有限访问权限。

用于visudo编辑sudoers文件(sudo配置)。它将在默认编辑器中打开它,并在完成后对其进行验证以防止破坏sudo。在最后添加这些:

usernameOr%Groupname ALL=(root) NOPASSWD: /sbin/cryptsetup luksOpen /dev/dev1 mapper_name1
usernameOr%Groupname ALL=(root) NOPASSWD: /sbin/cryptsetup luksOpen /dev/dev1 mapper_name2
usernameOr%Groupname ALL=(root) NOPASSWD: /sbin/cryptsetup luksClose mapper_name1
usernameOr%Groupname ALL=(root) NOPASSWD: /sbin/cryptsetup luksClose mapper_name2

这些行的细分:

  • usernameOr%Groupname- 用以下列前缀的用户名或组名替换%
  • ALL允许所有主机(我不知道这在实践中有何影响,但大多数情况下sudo似乎没问题)ALL
  • (root)意味着他们只能模仿 root
  • NOPASSWD:跳过密码提示,删除此部分以提示输入密码
  • /sbin/cryptsetup luksOpen /dev/dev1 mapper_name1显然是你的命令,带有可执行文件的完整路径

相关内容