Gibt es eine Möglichkeit, eine Funktion von einem Benutzer an einen anderen Benutzer zu übergeben?
Zum Beispiel habe ich ein kleines Bash-Skript, das ich als Root ausführe:
#!/bin/bash
user_func(){
whoami
exit
}
su vagrant -c 'user_func'
Die user_func-Funktion ist jedoch nicht für den Vagrant-Benutzer definiert, sondern nur für Root und kann nicht ausgeführt werden.
Meine andere Option wäre, mehrere Zeilen von zu haben
su vagrant -c 'cmd1'
su vagrant -c 'cmd2'
, etc
Oder führen Sie mehrere Befehle aus su vagrant -c 'cmd1; cmd2; cmd3;'
, z. B., aber ich würde es vorziehen, nicht den Überschuss zu haben, insbesondere wenn Sie versuchen, mehr als 5 Befehle als Vagrant-Benutzer auszuführen.
Ist es möglich, eine Funktion innerhalb desselben Skripts an einen anderen Benutzer zu übergeben (z. B. kein Skript auf der Festplatte als anderer Benutzer zu erstellen und dann das generierte Skript auszuführen)? Oder gibt es eine andere Option, die ich übersehen habe?