可以使用 <
脚本内容:
cat test.sh
代码如下:
#!/bin/bash
su - test <
exit;
EOF
当然也可以用下面的命令来执行
代码如下:
su - test -c "pwd"
ps:
切换用户只执行一条命令的可以用: su - oracle -c command
切换用户执行一个shell文件可以用:su - oracle -s /bin/bash shell.sh
function pritf()
{
su username -c "echo 登录成功"
}
su username -c "echo 登录成功"
这个问题的关键在于su命令和echo命令的发起者是su执行之前的用户,也就是设su和echo次序或同时执行时,发起者是user,当su执行成功时,shell已经切到root下,echo的执行结果依然在原来的user用户的shell里
此时你退回到user就能看到echo的执行结果了。
可见linux的安全性和权限管理的严谨。
su - username