Permissões de diretório para Cygwin SSH (Windows 7)
-
23-09-2019 - |
Pergunta
Sou fã do Linux, mas devido aos drivers sem fio Intel Bad no Linux, tive que mudar para o Windows 7. Instalei o Cygwin no Windows e quero configurar o SSH para conectar remotamente meu laptop.
Eu procurei com o Google e encontrei Informações para instalar o OpenSsh Server no Win 7, mas estou recebendo o seguinte erro ao executar ssh-host-config
:
bala@bala-PC ~ $ ssh-host-config yes *** Info: Creating default /etc/ssh_config file *** Query: Overwrite existing /etc/sshd_config file? (yes/no) yes *** Info: Creating default /etc/sshd_config file *** Info: Privilege separation is set to yes by default since OpenSSH 3.3. *** Info: However, this requires a non-privileged account called 'sshd'. *** Info: For more info on privilege separation read /usr/share/doc/openssh/READ ME.privsep. *** Query: Should privilege separation be used? (yes/no) no *** Info: Updating /etc/sshd_config file *** Warning: The following functions require administrator privileges! *** Query: Do you want to install sshd as a service? *** Query: (Say "no" if it is already installed as a service) (yes/no) yes *** Query: Enter the value of CYGWIN for the daemon: [] *** Info: On Windows Server 2003, Windows Vista, and above, the *** Info: SYSTEM account cannot setuid to other users -- a capability *** Info: sshd requires. You need to have or to create a privileged *** Info: account. This script will help you do so. *** Warning: The owner and the Administrators need *** Warning: to have .w. permission to /var/run. *** Warning: Here are the current permissions and ACLS: *** Warning: drwxr-xr-x 1 bala None 0 2010-01-17 22:34 /var/run *** Warning: # file: /var/run *** Warning: # owner: bala *** Warning: # group: None *** Warning: user::rwx *** Warning: group::r-x *** Warning: other:r-x *** Warning: mask:rwx *** Warning: *** Warning: Please change the user and/or group ownership, *** Warning: permissions, or ACLs of /var/run. *** ERROR: Problem with /var/run directory. Exiting.
As permissões desta pasta são mostradas apenas como leitura (se aplica apenas a esta pasta), verificadas em cinza. Tentei desmarcar, mas depois de abrir as propriedades novamente, a caixa é novamente verificada. Existe uma maneira de alterar as permissões desta pasta?
Solução
Estou executando o Cygwin 1.7 no Windows 7 x64 e sshd. Não me lembro de receber esse erro quando executei sshd_config, mas apenas olhei para o meu diretório /var /run e ele está definido como 777.
Experimente isso em uma concha de cygwin chmod 777 /var/run
Outras dicas
Desculpe por uma discussão tão antiga, mas essa pergunta sempre surgiu quando eu pesquisei esse problema específico.
Depois de alguns meses, finalmente encontrei uma solução. Quando configurei o Cygwin, não tinha minhas contas de usuário e grupo criadas corretamente no Cygwin. A principal maneira de fazer isso é executar:
mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group
Se você estiver fazendo login usando um usuário de domínio e passagem, você pode fazer:
mkpasswd -l -d > /etc/passwd
mkgroup -l -d > /etc/group
Ou, se você tem uma rede incrivelmente grande como a minha, pode não querer isso. Uma alternativa é apenas usar os usuários e o grupo local, além de qualquer pessoa que você esteja conectada atualmente como:
mkpasswd -l > /etc/passwd
mkpasswd -c >> /etc/passwd
mkgroup -l > /etc/group
mkgroup -c >> /etc/group
Depois de fazer isso, finalmente consegui executar o SSH-Host-Config corretamente para criar o serviço.
Eu tive muitos problemas com isso sozinho. Descobri que as etapas de instalação padrão funcionam bem, desde que eu:
- Inicie o shell Cygwin como usuário administrativo com a opção "Run como administrador".
- UAC desabilitou.
- Ter proteção contra vírus em tempo real desativada.
Depois que essas etapas forem tomadas, as etapas de instalação padrão são:
- Instale "OpenSsh" no instalador do Cygwin.
- Inicie o shell Cygwin como usuário administrativo com a opção "Run como administrador".
- Execute "ssh-host-config" do shell cygwin.
- Separação de privilégios: sim
- Nova conta local "sshd": sim
- Instale o SSHD como serviço: sim
- Valor de Cygwin: NTSectty
- Nome diferente para "cyg_server": não
- Crie uma nova conta de usuário privilegiada "CYG_SERVER": sim
- Defina a senha "cyg_server" e mantenha em um local seguro
- Iniciar líquido sshd
Depois disso, tudo parece funcionar bem no Windows 7 Professional e em casa.
Se você já possui uma instalação com falha no Cygwin SSHD, pode ser melhor fazer uma desinstalação completa e começar a fresco.
Aqui estão as instruções de desinstalação de cygwin se você precisar delas: http://cygwin.com/faq/faq.html#faq.setup.uninstall-all
Eu tive que remover a instalação quebrada:
cygrunsrv --remove sshd
rm -rf /var/log/sshd* /etc/ssh_host* /etc/sshd_config /var/empty
Em seguida, gerar Passwd e agrupar como mencionado acima:
mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group
Então eu corri:
ssh-host-config -y
cygrunsrv --start sshd
e, finalmente, as mensagens "falhas falhadas no setuid" desaparecem e o login funcionou.
Em uma concha de cygwin, verifique se você é um administrador então:
takeown /F "C:\cygwin" /R
icacls "C:\cygwin" /grant Everyone:\(F\) /T
icacls "C:\cygwin"
chmod 777 -R "c:\cygwin"
No Windows Explorer, para pasta /var
:
Propriedades.
Segurança.
Adicione administradores de grupo com controle total para a pasta e subpastas.
Funciona para mim.
Só consegui executar o script SSH-Host-Config com sucesso quando instalei o Cygwin em um disco rígido do tipo NTFS. O script SSH-HOST-Config não funcionou quando eu instalei o Cygwin em uma unidade flash do tipo Exfat.
Eu estava tendo o mesmo problema. Meu problema, acredito, foi porque eu tinha um arquivo personalizado /etc /fstab, onde estava montando a pasta raiz com a opção "Noacl". Aqui está como eu resolvi o problema:
Mova o costume /etc /fstab para fora do caminho:
mv /etc/fstab /etc/fstab.bak
Como alternativa, você pode editar seu arquivo /etc /fstab e remover a opção NOACL.
Feche todas as janelas da Cygwin Bash e quaisquer outros processos ou serviços de Cygwin. Se você tiver algum processo de cygwin em execução, ele manterá as coisas montadas com as configurações antigas /etc /fstab.
Inicie uma nova janela do Cygwin Bash.
Pode ser necessário executar o seguinte.
chmod +r /etc/passwd chmod o+x /var chmod +w /var/run
Atravesse os dedos, execute o ssh-host-config e agora deve ser concluído sem erros.
Se você moveu seu /etc /fstab na etapa 1, poderá movê -lo de volta agora:
mv /etc/fstab.bak /etc/fstab
Se você criou novos usuários depois de instalar o Cygwin, Update /etc /passwd, caso contrário, esses usuários podem não poder fazer login via SSH:
mkpasswd -l > /etc/passwd
Além disso, acesse o Windows Firewall e permita c: /cygwin/usr/sbin/sshd.exe e c: /cygwin/usr/sbin/sftp-server.exe