Ubuntu 运行用户命令?

Ubuntu 运行用户命令?

我正在创建一个 bash 脚本,需要以特定用户身份运行命令。结果我使用命令:

runuser

我已经测试过这个脚本,它在 Ubuntu Server 14.10 中完美运行。但是,在 14.04 和 12 上测试它时,我遇到了以下错误:

runuser: command not found

每当使用 runuser 命令时都会发生这种情况。

我正在使用以下命令创建新用户:

adduser --no-create-home --home "/home/$homedir" --disabled-password --gecos "$realname" "$uname" ; usermod -p "$passwd" "$uname"

创建新用户时是否需要指定一些具体内容?是否缺少特定的依赖项?

问题编辑:

echo $PATH 的输出

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/loc‌​al/games

ls -l /sbin/runuser 的输出

ls: cannot access /sbin/runuser: No such file or directory

我之所以要使用 runuser vs su 是因为以下原因:

使用 runuser 时,我可以运行以下命令:

runuser user -c 'cd'
runuser user -c 'wget http://file.com'

而使用 su 我必须像这样链接命令:

su user -c 'cd; wget http://file.com'

答案1

runuser是最近的命令,它出现在实用程序Linux 2.23。 Ubuntu 14.04 发布实用程序Linux 2.20,所以它还没有这个命令。

runuser不是很有用。就用su代替吧。请注意,该命令runuser user -c 'cd'实际上并不执行任何操作 - 的范围cd不会扩展到下一次调用runuser.无论如何你都必须使用runuser user -c 'cd && wget http://file.com'。代替使用su user -c 'cd && wget http://file.com'

相关内容