Por que algumas funções do usuário não são reconhecidas pelo bash com o sudo?

3

Condições iniciais: Eu defini uma função e a exporto:

myfunction () { echo OK ; }
export -f myfunction

Eu tenho um arquivo bash simples: test.sh

#!/bin/bash
myfunction

Teste OK com o usuário atual: Se eu correr:

bash test.sh

Funciona:)

Não funciona com o sudo: Mas se eu correr no sudo:

sudo bash test.sh

Eu tenho o erro:

test.sh: ligne2: myfunction : commande introuvable

que significa

test.sh: line2: myfunction : command not found

Pergunta

Por que minha função não funciona no sudo? Como isso pode funcionar no sudo?

Muito obrigado:)

    
por sangorys 06.07.2014 / 20:54

1 resposta

6

Por razões de segurança, sudo joga fora as funções do shell e a maioria das variáveis de ambiente antes de executar seu processo filho.

Você precisa incluir a definição de myfunction em test.sh .

    
por Florian Diesch 06.07.2014 / 21:09