像其他用户一样运行命令 – 最好的方法

当从命令行以其他用户身份运行命令时,build议采用哪种最佳实践? 在过去,我使用sudo,如下所示: sudo -u username command [args]

我被告知(没有具体的原因为什么)使用sudo来达到这个目的是错误的。 我想知道为什么。 有什么“最好的办法”来完成这个? 例如,我也像这样使用了su命令: su username - -c "command [args]"

我无法想象为什么这些方法中的任何一个都是“坏”的。 你的想法?

su usernamesudo -u username之间的主要区别在于,前者需要提供username的密码,而后者则需要提供自己的密码。 正如其他人已经指出的那样,这两种方法本身都不如其他方法好或差。