以具有 sudo 权限的用户身份进行 sudo?

以具有 sudo 权限的用户身份进行 sudo?

Alice 有 sudo 权限。Bob 没有(这是不可更改的),但是知道 Alice 帐户的密码。

如果 Bob 想要执行管理命令,他必须:

  1. su alice
  2. 填写 Alice 的 su 密码
  3. sudo whoami
  4. 填写 Alice 的 sudo 密码
  5. 命令以超级用户权限执行

为了缩短这个我使用:su -m alice -c 'sudo whoami'

但是,我想构建一个别名命令,用常规 sudo 命令替换这个繁琐的命令。

所以我做了这个:alias sudo="su -m alice -c 'sudo $@'"

2 个注意事项:

  • 它不起作用
  • 它总是要求 Alice 提供 su 密码,它确实记得 sudo 密码

我怎样才能做得更好?

谢谢!

答案1

这取决于 sudoers 的配置。如果设置了“Defaults requiretty”,则此方法无效。

suds () { 
    ARGS="$@"
    /bin/su -m alice -c "/usr/bin/sudo  TERM=xterm $ARGS"
}

关于此问题的一些评论

  1. 它将始终要求输入 alices 的密码来验证 su 的身份。
  2. 当变量用单引号引起来时,它通常不会被扩展。
  3. 我倾向于使用函数而不是别名,它们允许我在转换中添加更多逻辑。
  4. 从安全角度来看,这不是一个好主意。在实施之前,请确保这不会违反当地政策。

里克

相关内容