通过提供密码以其他用户身份执行命令

通过提供密码以其他用户身份执行命令

我需要通过提供他们的密码来以另一个用户的身份执行命令。这必须能够在没有终端的情况下完成,也就是说,纯粹通过 bash 脚本完成。我还需要能够在不安装自定义包的情况下做到这一点(密码等)或配置任何 root 可访问的文件(sudoers, ETC)。

我尝试过的事情:

  1. sudo -u 'myuser' -- sh -c 'mycommand'
  2. su - 'myuser' -c 'mycommand'
  3. ssh 'myuser'@localhost 'mycommand'

所有这些都是为了实现以另一个用户身份执行命令的目标。然而,身份验证是个问题...

  1. sudo- 允许您使用标志通过标准输入提供密码-S。但是,它要求你的密码 - 不是您尝试以之执行命令的用户的密码。
  2. su- 允许您提供他们的密码而不是您的密码,但只能通过终端提供!
  3. ssh- 允许您提供他们的密码,但它也只能通过终端提供。它的开销也比前两个大得多。

如果su-S这样的标志sudo,这个问题就解决了。是否存在可以执行此操作的东西(内置)?如果没有,为什么不存在?似乎没有任何安全问题,因为sudo已经提供了通过标准输入传递密码的能力。

相关内容