Como usar o SCSUDO para executar scripts com parâmetros posicionais?

3

Estou tentando usar scsudo para executar vários comandos definidos para interromper e iniciar processos em um host UNIX. O problema que estou enfrentando é que scsudo não parece gostar do uso de parâmetros posicionais quando o script é chamado com scsudo do arquivo de configuração de comando.

Recebi a tarefa de implementar scsudo para reduzir o número de solicitações de acesso funcionais para interromper e iniciar processos e outros comandos definidos, além da sobrecarga administrativa associada a isso.

Aqui está um exemplo:

scsudo - <functional_id> "/opt/scripts/Start_Process_script.sh parameter1 parameter2 parameter3"
Password:
Reason:
execvp: No such file or directory

Parece que o arquivo de configuração do scsudo não parece manipular os parâmetros ao chamar script e, portanto, não consegue encontrar o script que foi solicitado a executar.

Coloquei parênteses em torno do comando, incluindo parâmetros, mas isso ainda não resolveu o problema?

Eu pesquisei na Web e no Stack Exchange completamente, mas não consegui devolver muito se algo relacionado a scsudo em termos de guias ou base de conhecimento para o uso de scsudo .

Eu ficaria muito grato por seu assistente sobre este assunto.

    
por theirishkiwi 22.12.2011 / 20:06

1 resposta

3

É trivial quando você conhece o truque:

scsudo - <functional_id> sh -c "/opt/scripts/Start_Process_script.sh parameter1 parameter2 parameter3"

Você também pode usar:

scsudo - <functional_id> /opt/scripts/Start_Process_script.sh parameter1 parameter2 parameter3

se o script começar com um shebang apropriado ( #!/bin/sh ou #!/bin/bash ou qualquer outro).

Como você escreveu, o comando scsudo está procurando executar um programa em /opt/scripts chamado "Start_Process_script.sh parameter1 parameter2 parameter3" (completo com espaços incorporados) e não o está encontrando, daí o erro.

    
por 22.12.2011 / 20:29