Existe alguma maneira de eu passar uma função de um usuário para outro usuário?
Por exemplo, eu tenho um pequeno script Bash que executo como Raiz:
#!/bin/bash
user_func(){
whoami
exit
}
su vagrant -c 'user_func'
No entanto, a função user_func não está definida para o usuário do Vagrant, apenas para o Root e não pode ser executada.
Minha outra opção seria ter várias linhas de
su vagrant -c 'cmd1'
su vagrant -c 'cmd2'
, etc
Ou execute vários comandos ex:, su vagrant -c 'cmd1; cmd2; cmd3;'mas eu preferiria não ter excesso, principalmente ao tentar executar mais de 5 comandos como o usuário do Vagrant.
É possível passar uma Função para outro usuário a partir do mesmo script (por exemplo, não criando um script no disco como um usuário diferente e executando esse script gerado)? Ou existe outra opção que estou ignorando?