我正在创建一个需要以特定用户身份运行命令的 bash 脚本。结果我使用了命令:
runuser
Run Code Online (Sandbox Code Playgroud)
我已经测试了这个脚本,它在 Ubuntu Server 14.10 中完美运行。但是,在 14.04 和 12 上对其进行测试时,我遇到了以下错误:
runuser: command not found
Run Code Online (Sandbox Code Playgroud)
任何时候使用 runuser 命令都会发生这种情况。
我正在使用以下命令创建一个新用户:
adduser --no-create-home --home "/home/$homedir" --disabled-password --gecos "$realname" "$uname" ; usermod -p "$passwd" "$uname"
Run Code Online (Sandbox Code Playgroud)
创建新用户时是否需要指定一些特定的内容?是否缺少特定的依赖项?
问题编辑:
echo $PATH 的输出
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/loc??al/games
Run Code Online (Sandbox Code Playgroud)
ls -l /sbin/runuser 的输出
ls: cannot access /sbin/runuser: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我之所以要使用 runuser vs su 是因为以下几点:
使用 runuser 时,我可以运行以下命令:
runuser user -c 'cd'
runuser user -c 'wget http://file.com'
Run Code Online (Sandbox Code Playgroud)
而使用 su 我必须像这样链接命令:
su user -c 'cd; wget http://file.com'
Run Code Online (Sandbox Code Playgroud)