Estou tentando executar um script Linux em minha máquina Windows usando o cygwin.
Eu já li e tentei as soluções deNão há comando 'sudo' no Cygwin, sem qualquer sucesso.
Eu tenho um script que usa sudo no ambiente Linux normal. mas quando executo o scirpt no cygwin, ele gera esta mensagem de erro:
project_common.sh: line 604: sudo: command not found
Eu sei que o cygwin não tem sudo, e a pergunta referenciada mencionada anteriormente dizia para usar:
>#!/usr/bin/bash
>"$@"
Tentei executar esse comando antes de executar o script. e também incorporando o comando no script. Nenhum dos dois ajuda. Portanto, não tenho certeza do que estou perdendo.
Responder1
Remova todos os sudo
itens do arquivo e execute o script como administrador.
Dito isto, a ideia do Linux root
e a ideia do Windows do Administrador não correspondem exatamente. Você ainda pode ter problemas de permissão que precisam ser corrigidos manualmente ou modificando ainda mais o script, especialmente no Windows Vista/7.
A propósito, a pergunta referenciada queria que você colocasse
>#!/usr/bin/bash
>"$@"
em um arquivo chamado sudo
, conceda permissão executável com chmod
e coloque-o em algum diretório no seu $PATH
, como /sbin
. O arquivo resultante não fará nada, exceto executar os parâmetros que você fornecer como comando. A ideia era fazer um sudo "falso" que não fizesse nada. Você também pode simplesmente excluir os sudo
do arquivo.
Responder2
Experimente isto:
#!/usr/bin/env bash
cygstart --action=runas "$@"
Funciona de forma semelhante ao sudo, a desvantagem é que você precisa confirmar a caixa de diálogo do UAC manualmente. Este script faz parte do meurepositório de pontos.
Responder3
Existem outras respostas emStackoverfloweSuperusuárioque mostra como executar um comando com privilégios elevados a partir de um prompt do Cygwin. Estou usando um alias:
alias sudo="cygstart --action=runas"
Funciona perfeitamente para programas externos (embora não integrados ao shell):
sudo chown User:Group <file>