関数をあるユーザーから別のユーザーに渡す方法はありますか?
たとえば、ルートとして実行する小さなBashスクリプトがあります。
#!/bin/bash
user_func(){
whoami
exit
}
su vagrant -c 'user_func'
ただし、user_func関数はVagrantユーザーに対しては定義されておらず、ルートに対してのみ定義されているため、実行できません。
私の他のオプションは、複数の行を持つことです
su vagrant -c 'cmd1'
su vagrant -c 'cmd2'
, etc
または、複数のコマンドをex:で実行しますsu vagrant -c 'cmd1; cmd2; cmd3;'が、特にVagrantユーザーとして5つ以上のコマンドを実行しようとする場合は、余分なコマンドを使用しない方がよいでしょう。
同じスクリプト内から別のユーザーに関数を渡すことはできますか(たとえば、別のユーザーとしてディスク上にスクリプトを作成してから、その生成されたスクリプトを実行しない)。または私が見落としている別のオプションはありますか?