允许一个用户登录其他用户(Sudo)

允许一个用户登录其他用户(Sudo)

我想让特定用户能够以任何普通用户(例如非 root 或守护进程)身份登录并以该用户身份执行命令。

我怎样才能安全地做到这一点?

目前我的用户对 bash 脚本有 sudo 权限,如下所示:

if [ "$1" = "run" ]; then

  sudo -u ${2} ${3};

fi

虽然这种方法可行,但是安全并不是重点。

多谢你们。

答案1

制作一个新脚本,/usr/bin/runasuser

#!/bin/sh
newuser="${1}" && shift
/usr/bin/sudo su - "${newuser}" -c "$@"

使其可执行

chmod +x /usr/bin/runasuser

使用命令编辑 sudoersvisudo并添加以下行:

alice ALL=(ALL)         /usr/bin/runasuser

如果 Alice 执行以下操作,她就可以以 Bob 的身份运行任何内容:

sudo /usr/bin/runasuser bob /opt/application/for/bob

假设您的 sudo 环境默认包含 /usr/bin,您只需运行:

sudo runasuser bob /opt/application/for/bob

相关内容