我正在创建一个 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/local/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'
。