Чи є спосіб передати функцію від одного користувача до іншого користувача?
Наприклад, у мене є невеликий сценарій 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;', але я не хотів би мати надлишок, особливо при спробі виконати більше 5 команд , як користувач Vagrant.
Чи можливо передати функцію іншому користувачеві в межах одного сценарію (наприклад, не створити сценарій на диску як інший користувач, а потім виконати створений сценарій)? Або є інший варіант, який я оглядаю?