Cheguei aqui pelo google e, na verdade, acredito que encontrei uma maneira de obter um prompt de raiz totalmente funcional no cygwin.
Aqui estão os meus passos.
Primeiro você precisa renomear a conta de administrador do Windows para "root" Faça isso abrindo start manu e digitando "gpedit.msc"
Edite a entrada em Diretiva do computador local> Configuração do computador> Configurações do Windows> Configurações de segurança> Diretivas locais> Opções de segurança> Contas: renomear conta de administrador
Você precisará habilitar a conta se ela ainda não estiver ativada. Política do Computador Local> Configuração do Computador> Configurações do Windows> Configurações de Segurança> Diretivas Locais> Opções de Segurança> Contas: Status da conta do Administrador
Agora saia e entre na conta root.
Agora defina uma variável de ambiente para o cygwin. Para fazer isso da maneira mais fácil: Clique com o botão direito em Meu Computador> Propriedades
Clique (na barra lateral esquerda) "Configurações avançadas do sistema"
Perto da parte inferior, clique no botão "Variáveis ambientais"
Em "Variáveis do sistema", clique no botão "Novo ..."
Para o nome, coloque "cygwin" sem as aspas. Para o valor, digite seu diretório raiz cygwin. (O meu era C: \ cygwin)
Pressione OK e feche tudo isso para voltar à área de trabalho.
Abra um terminal Cygwin (cygwin.bat)
Edite o arquivo / etc / passwd e altere a linha
Administrador : não utilizado: 500: 503 : U- MACHINE \ Administrator , S-1-5-21-12345678-1234567890-1234567890- 500: / home / Administrador : / bin / bash
Para isso (seus números e nome da máquina serão diferentes, apenas altere os números destacados para 0!)
root : não utilizado: 0: 0 : U- MACHINE \ root , S-1-5-21-12345678-1234567890-1234567890- 0: / root : / bin / bash
Agora que tudo está terminado, este próximo bit fará o comando "su" funcionar. (Não perfeitamente, mas funcionará o suficiente para usar. Não acho que os scripts funcionem corretamente, mas ei, você chegou até aqui, talvez possa encontrar o caminho. E, por favor, compartilhe)
Execute este comando no cygwin para finalizar o negócio.
mv /bin/su.exe /bin/_su.exe_backup
cat > /bin/su.bat << "EOF"
@ECHO OFF
RUNAS /savecred /user:root %cygwin%\cygwin.bat
EOF
ln -s /bin/su.bat /bin/su
echo ''
echo 'All finished'
Faça logout da conta raiz e volte para a sua conta de usuário normal do Windows.
Depois de tudo isso, execute o novo "su.bat" manualmente clicando duas vezes no explorer. Digite sua senha e vá em frente e feche a janela.
Agora tente executar o comando su do cygwin e veja se tudo deu certo.
what
script que está tentando executar? Não há equivalente a 'sudo' dentro de um shell cygwin - os direitos são os do usuário win que lançou o shell cygwin; portanto, o link KyleWpppd é bom para evitar erros como "comando sudo unknown". No seu caso, parece um problema específico com o script que você deseja executar.