以Linux“系统”用户身份运行命令(shell = / bin / false)


29

我在Ubuntu 11.04(adduser --system)中创建了一个“系统”用户来运行某些cron作业,但有时我想通过以该用户手动运行命令的方式来进行测试。最简单的方法是什么?

su不起作用,因为用户/bin/false将其作为外壳程序(对于cron来说很好)。我一直在手动更改外壳以/bin/bash进行测试,然后再次将其重新更改,但我想知道还有没有更简单的方法?

Answers:


41

su - targetuser -s /bin/bash从根壳使用。

对于直接命令执行,请使用-c

su - targetuser -s /bin/bash -c "/bin/echo hello world" 

可行,谢谢!我如何错过-s选项?
EMP

3
您还可以使用-c“ your_command_here”选项来传递您要运行的命令,而不是等待shell,然后在新的提示符下键入该命令。
2011年

2

使用sudo。即使用户没有真正的外壳,这也将起作用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.