Можно ли как-то передать функцию от одного пользователя другому?
Например, у меня есть небольшой скрипт 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
Или выполнить несколько команд ex:, su vagrant -c 'cmd1; cmd2; cmd3;'но я бы предпочел, чтобы их не было, особенно при попытке выполнить более 5 команд в качестве пользователя Vagrant.
Можно ли передать функцию другому пользователю из того же сценария (например, не создавать сценарий на диске как другой пользователь, а затем выполнять этот созданный сценарий)? Или есть другой вариант, который я пропускаю?