Разрешения каталогов для Cygwin SSH (Windows 7) - PullRequest
15 голосов
/ 29 января 2010

Я фанат Linux, но из-за плохих драйверов Intel для беспроводных сетей в Linux мне пришлось переключиться на Windows 7. Я установил Cygwin в Windows и хочу настроить SSH для удаленного подключения к моему ноутбуку.

Я искал в Google и нашел информацию для установки сервера openssh на Win 7 , но я получаю следующую ошибку при запуске 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.

Разрешения для этой папки показаны только для чтения (только для этой папки), отмечены серым цветом. Я пытался снять отметку, но после того, как я снова открыл свойства, флажок снова установлен. Есть ли способ изменить разрешения для этой папки?

Ответы [ 9 ]

8 голосов
/ 05 июня 2012

Извините, что похоронил такую ​​старую ветку, но этот вопрос всегда возникал, когда я гуглял эту конкретную проблему.

Через несколько месяцев я наконец нашел решение. Когда я настраивал cygwin, мои учетные записи пользователей и групп не были правильно созданы в cygwin. Основной способ сделать это - запустить:

mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group

Если вы входите в систему, используя пользователя домена и пароль, вы можете сделать:

mkpasswd -l -d > /etc/passwd 
mkgroup -l -d > /etc/group

Или, если у вас невероятно большая сеть, как у меня, вы, возможно, не очень этого хотите. Альтернативой является просто использование ваших локальных пользователей и группы, а также любого пользователя, в котором вы в данный момент вошли:

mkpasswd -l > /etc/passwd
mkpasswd -c >> /etc/passwd
mkgroup -l > /etc/group
mkgroup -c >> /etc/group

После того, как я это сделал, я наконец смог правильно запустить ssh-host-config для создания службы.

5 голосов
/ 29 января 2010

Я использую Cygwin 1.7 на Windows 7 x64 и sshd. Я не помню, как получал эту ошибку при запуске sshd_config, но я просто посмотрел на каталог / var / run, и он установлен на 777.

Попробуйте это в оболочке cygwin chmod 777 /var/run

4 голосов
/ 06 февраля 2014

У меня было много проблем с этим сам. Я обнаружил, что стандартные шаги установки работают нормально, если я:

  1. Запустите оболочку Cygwin от имени администратора с параметром «Запуск от имени администратора».
  2. UAC отключен.
  3. Отключить антивирусную защиту в реальном времени.

После выполнения этих шагов установки по умолчанию:

  1. Установите "openssh" из установщика Cygwin.
  2. Запустите оболочку Cygwin от имени администратора с параметром «Запуск от имени администратора».
  3. Запустите «ssh-host-config» из оболочки Cygwin.
  4. Разделение привилегий: да
  5. Новый локальный аккаунт "sshd": да
  6. Установить sshd как службу: да
  7. Значение CYGWIN: нтсек, tty
  8. Другое имя для "cyg_server": нет
  9. Создать новую учетную запись привилегированного пользователя "cyg_server": да
  10. Установите пароль "cyg_server" и храните его в надежном месте
  11. net start sshd

После этого все работает нормально как на Windows 7 Professional, так и на Home.

Если у вас уже была неудачная установка Cygwin sshd, лучше всего выполнить полное удаление и начать заново.

Вот инструкции по удалению Cygwin, если они вам нужны: http://cygwin.com/faq/faq.html#faq.setup.uninstall-all

3 голосов
/ 10 февраля 2015

Мне сначала пришлось удалить сломанную установку:

cygrunsrv --remove sshd
rm -rf /var/log/sshd* /etc/ssh_host* /etc/sshd_config /var/empty

, затем сгенерируйте пароль и группу, как указано выше:

mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group

тогда я побежал:

ssh-host-config -y
cygrunsrv --start sshd

и, наконец, сообщения "setuid fail" исчезли и логин сработал.

2 голосов
/ 17 мая 2010

В оболочке cygwin убедитесь, что вы являетесь администратором:

takeown /F "C:\cygwin" /R
icacls "C:\cygwin" /grant Everyone:\(F\) /T
icacls "C:\cygwin"
chmod 777 -R "c:\cygwin"
1 голос
/ 31 марта 2015

В проводнике Windows для папки /var:

Свойства.
Безопасность.
Добавить администраторов группы с полным контролем для папка и подпапки.

Это работает для меня.

0 голосов
/ 27 июня 2016

для Windows Пользователи запускают " Cygwin Terminal ", щелкнув правой кнопкой мыши по ярлыку и запустив его от имени администратора .... enter image description here

Теперь запустите " ssh-host-config " из терминала Cygwin ... Это определенно будет работать.

0 голосов
/ 12 сентября 2014

У меня была такая же проблема.Я считаю, что моя проблема заключалась в том, что у меня был собственный файл / etc / fstab, в котором я монтировал корневую папку с опцией «noacl».Вот как я решил проблему:

  1. Уберите пользовательский файл / etc / fstab с пути:

     mv /etc/fstab /etc/fstab.bak
    

    В качестве альтернативы вы можете отредактировать свой файл / etc /fstab и удалите опцию noacl.

  2. Закройте все окна Cygwin bash и любые другие процессы или службы Cygwin.Если у вас запущен какой-либо процесс Cygwin, он будет поддерживать старые параметры / etc / fstab.

  3. Запустить новое окно Cygwin bash.

  4. Возможно, вам потребуется выполнить следующее.

    chmod +r /etc/passwd
    chmod o+x /var
    chmod +w /var/run
    
  5. Скрестите пальцы, запустите ssh-host-config, и теперь оно должно завершиться без ошибок.

  6. Если вы переместили / etc / fstab на шаге 1, вы можете переместить его обратно сейчас:

     mv /etc/fstab.bak /etc/fstab
    
  7. Если вы создали новых пользователей после первой установкиCygwin, обновите / etc / passwd, иначе эти пользователи не смогут войти через ssh:

    mkpasswd -l > /etc/passwd
    
  8. Кроме того, зайдите в брандмауэр Windows и разрешите C: / cygwin / usr /sbin / sshd.exe и C: /cygwin/usr/sbin/sftp-server.exe

0 голосов
/ 02 июня 2014

Я смог успешно запустить скрипт ssh-host-config только тогда, когда установил Cygwin на жесткий диск типа NTFS. Скрипт ssh-host-config не работал, когда я установил Cygwin на флэш-накопитель типа exFAT.

...