Existe-t-il un moyen de transmettre une fonction d'un utilisateur à un autre utilisateur?
Par exemple, j'ai un petit script Bash que j'exécute en tant que root:
#!/bin/bash
user_func(){
whoami
exit
}
su vagrant -c 'user_func'
Cependant, la fonction user_func n'est pas définie pour l'utilisateur Vagrant, uniquement pour Root, et ne peut pas être exécutée.
Mon autre option serait d'avoir plusieurs lignes de
su vagrant -c 'cmd1'
su vagrant -c 'cmd2'
, etc
Ou, exécutez plusieurs commandes ex:, su vagrant -c 'cmd1; cmd2; cmd3;'mais je préférerais ne pas avoir l'excédent, surtout lorsque vous essayez d'exécuter plus de 5 commandes en tant qu'utilisateur Vagrant.
Est-il possible de passer une fonction à un autre utilisateur à partir du même script (par exemple, ne pas créer un script sur le disque en tant qu'utilisateur différent, puis exécuter ce script généré)? Ou existe-t-il une autre option que j'envisage?