В нашей компании мы используем cygwin на каждой из наших машин, чтобы иметь возможность запускать наши проекты с помощью GNU make (все используют Windows 10)! Я также разработал инструмент, с помощью которого все сотрудники могут синхронизировать свои проекты со своих (медленных) машин на наш сервер (Windows Server 2012 R2), запускать make на (быстром) сервере и обратно синхронизировать вывод.
Все это работает с ssh-соединением cygwin!
Информация:
Добавлен каждый пользователь в файл passwd. Выглядит так:
u89x77: *: 1447213: 1049089: U-OTP01 \ u89x77, S-1-5-21-1054053922-559824688-2072063007-398637: / home / u89x77: / bin / bash
Сопоставлены следующие каталоги в файле fstab:
Создал ключи RSA для КАЖДОГО пользователя на машине пользователя и поместил их в его / ее домашнюю папку на сервере. Теперь каждый может подключиться к своей папке на сервере без повторного ввода пароля Windows (мне пришлось это сделать, потому что мой инструмент для синхронизации работает с rsync)
Сейчас я хочу ограничить каждого пользователя, который подключается к серверу через ssh, его домашней папкой / home / 'username'
Например: имя пользователя в нашем домене u89x77. Он может нормально входить в систему через ssh, но также может записывать cd, например, в C: \ Windows или, что еще хуже, в C: \ projects \ 'другое имя пользователя' \ 'absolute secret project'. И я не этого хочу.
Пользователь должен быть заблокирован для cd вне C: \ projects \ u89x77, но, конечно, должен заглянуть в свою папку, например, cd C: \ projects \ 'u89x77 \' u89x77 project '.
Я много чего пробовал до сих пор, а также провел много исследований. Но, к сожалению, ничего не вышло ...
Добавив следующее в / etc / sshd_config на сервере cygwin, я больше не мог подключиться (подключен и немедленно закрыт со статусом выхода 255), и это также не привело бы к тому, что я точно хочу. Потому что это ограничит пользователей C: \ projects \, а не только их папкой ...:
ChrootDirectory /home
Subsystem sftp internal-sftp
Я также читал кое-что об установке каталога C: \ tools \ cygwin в домашний каталог каждого пользователя, потому что подключенный пользователь больше не сможет получить доступ к cygwin bin / bash? (в / etc / passwd последняя запись / bin / bash ...) Я пробовал, но все та же ошибка.
Мне чего-то не хватает, но есть так много вариантов, чтобы настроить это, мне просто нужна помощь ...
PS: Это был мой первый пост. Надеюсь, я не нарушил многие правила. Простите за это!
Спасибо за попытку помочь! Ответ был действительно прост ...
Пришлось заблокировать «Пользователи домена» в разделе безопасности только в Windows. Например. если каждый пользователь, который подключается со своей учетной записью пользователя домена через ssh к серверу, только у него есть разрешения Windows для своей папки.
По умолчанию пользователи домена имеют как минимум права на чтение вновь созданных папок.
Сейчас я хочу ограничить каждого пользователя, который подключается к серверу через ssh, его домашней папкой / home / 'username'
Если я понимаю ваш вопрос, вы не можете сделать это в Cygwin, потому что в Windows нет chroot
. Вы можете сделать это для sftp
связи, хотя. Подробности смотрите в моем пакете CygSSH на GitHub: