Instalação compartilhada do Cygwin

5

Estou tentando configurar o OpenSSH em várias máquinas do Windows Server 2003 de maneira automatizada. Meu objetivo é poder fazer isso usando uma única versão do Cygwin instalada em uma unidade de rede, em vez de instalá-la manualmente em cada máquina.

Eu posso instalar o cygwin muito bem, mas começo a me deparar com problemas quando tento rodar o ssh-host-config.

$ ssh-host-config
bash: /usr/bin/ssh-host-config: Permission denied 

Ok, não é grande coisa. Eu chmod 555 tudo em / usr / bin.

$ ssh-host-config
/usr/share/csih/cygwin-service-installation-helper.sh: line 689: /usr/bin/awk: cannot execute binary file

Aqui é onde eu fico preso. Correndo

petters@BTSOTTSTBAL507 /usr/bin
$ awk
bash: /usr/bin/awk: cannot execute binary file

Aqui está o conteúdo do awk:

!<symlink>gawk.exe

Apenas como nota, eu posso executar o gawk.exe muito bem e tentei instalar o Cygwin com o conjunto de variáveis de ambiente CYGWIN = winsymlinks.

Eu também notei o seguinte -

petters@BTSOTTSTBAL507 /usr/bin
$ ls -l
total 366592    
-rwxr-xr-x 1 ???????? ????????   54798 Feb  4 19:02 [.exe
-rwxr-xr-x 1 ???????? ????????   23566 May 18  2010 addftinfo.exe
-rwxr-xr-x 1 ???????? ????????  165806 May 18  2010 afmtodit
-rwxr-xr-x 1 ???????? ????????    1786 May 17  2010 apropos
-rwxr-xr-x 1 ???????? ????????   47118 Feb  4 19:01 arch.exe
-rwxr-xr-x 1 ???????? ????????    8206 Apr 29 00:43 ascii.exe

Em outras palavras, os dados de propriedade estão confusos.

Minha impressão é que o cygwin 1.7.x era portátil, mas talvez não? Qualquer ajuda é apreciada!

    
por dpetters 06.07.2011 / 16:24

1 resposta

2

Existem 2 problemas que você está enfrentando.

A primeira é a diferença entre a visão posix-y do Cygwin de permissões e propriedade versus o Windows. Você vai querer ler Usando a segurança do Windows no Cygwin . O ???????? é exibido porque os arquivos são de propriedade de um usuário que não está definido na máquina local. Se você estiver em um domínio, provavelmente poderá executar mkpasswd e mkgroup e usar a saída para criar os /etc/passwd e /etc/groups apropriados. No entanto, eles incluirão apenas as contas específicas da máquina do host em que foram criadas.

Que segue muito bem a segunda questão:

O Cygwin salva a maioria das configurações em /etc . Portanto, compartilhar /etc em vários hosts é muito difícil. Da mesma forma, a maioria dos processos do Cygwin assumirá /tmp e /var também são específicos da máquina.

Você pode conseguir que isso funcione criando diretórios locais em cada máquina, como: c:\cygwin\etc , c:\cygwin\tmp e c:\cygwin\var . Você precisará preencher etc e var com os arquivos e diretórios esperados. Então você precisará criar um / etc / fstab que reúna tudo isso em um sistema de arquivos completo. Você vai querer ler Nomes de caminho de mapeamento para saber mais sobre isso.

Tenha em mente que sempre que a sua unidade de rede não estiver disponível, qualquer processo Cygwin em execução pode travar, travar ou simplesmente se comportar de maneira estranha.

    
por 06.07.2011 / 17:25