问题:
因此必须执行的命令数量,用单行命令写入:
comamand1; command2; command3;
第一个命令是
sw user_name;
问题是在 sw user_name; 之后没有执行任何命令。 (虽然用户改变了)
关于我如何执行上述命令字符串的任何想法?
P.S。
bash-3.2$ sw
Sorry, user ehwe is not allowed to execute '/bin/su -' as root on server_name
猜猜它解释了sw是什么:)
P.P.S sw 代表 / bin / su -
答案 0 :(得分:5)
希望你的意思是“su”而不是“sw”。如果您想切换为某些用户并执行一组命令,则可以使用-c选项。你可以试试这样的su - chidori -c "date;ls;df"
答案 1 :(得分:0)
听起来我sw
可能是su
的某种别名。您可以查看alias sw
。如果是这种情况,您可以使用chidori的答案,只需将su
替换为sw
。
答案 2 :(得分:0)
您无法更改给定流程的用户;您只能以新用户身份启动新进程。因此,sw
可能正在启动一个新的交互式shell。当该shell退出时,sw
命令完成,序列中的下一个命令可以完成。例如:
$ sw user_name; echo "Second command executes"
$ echo hello
hello
$ exit
Second command executes