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

EMP*_*EMP 35 linux ubuntu su shell cron

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

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

dmo*_*ati 45

su - targetuser -s /bin/bash从 root shell 使用。

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

su - targetuser -s /bin/bash -c "/bin/echo hello world" 
Run Code Online (Sandbox Code Playgroud)

  • 您还可以添加 -c "your_command_here" 选项来传递您想要运行的命令而不是等待 shell,然后在新的提示符下输入它。 (3认同)