有什么方法可以将功能从一个用户传递给另一个用户?
例如,我有一个小的Bash脚本,可以作为Root执行:
#!/bin/bash
user_func(){
whoami
exit
}
su vagrant -c 'user_func'
但是,user_func函数不是为Vagrant用户定义的,仅针对Root的,并且无法执行。
我的另一种选择是有多行
su vagrant -c 'cmd1'
su vagrant -c 'cmd2'
, etc
或者,执行多个命令,例如:su vagrant -c 'cmd1; cmd2; cmd3;',但是我不希望多余,尤其是当尝试以Vagrant用户身份执行5条以上的命令时。
是否可以从同一脚本中将功能传递给另一个用户(例如,不以其他用户的身份在磁盘上创建脚本,然后执行该生成的脚本)?还是我还有其他选择?