Как включить chrooted доступ SFTP к файлу в RHEL 6.5?

Я пытаюсь настроить chrooted доступ SFTP к серверу RHEL 6.5. Я выполнил стандартные шаги по редактированию файла sshd_config, чтобы они соответствовали любым пользователям группы chroot:

Match group prisoners ChrootDirectory /home/%u AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp 

а также установить

 Subsystem sftp internal-sftp 

Пользователь «test» имеет следующую директорию:

 [root@ip-10-0-1-158 ~]# ls -l /home/test total 4 drwxrwxr-x. 3 root prisoners 4096 Jul 20 17:55 SFTP 

(Я также рекурсивно устанавливаю права доступа и прав доступа в этом каталоге)

и находится в соответствующей группе:

 [root@ip-10-0-1-158 ~]# sudo -u test id uid=501(test) gid=498(prisoners) groups=498(prisoners) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 

Когда я пытаюсь редактировать или создавать файлы в каталоге / home / test / SFTP в качестве тестового пользователя через мой сеанс ssh, все работает по назначению. Если я вхожу в систему через WinSCP, я проверяю подлинность и вижу содержимое каталога / home / test (но не изменяю их). Однако это не позволяет мне просматривать, редактировать или создавать файлы в каталоге / home / test / SFTP.

Сообщение об ошибке WinSCP:

 Error listing directory '/SFTP'. Permission denied. Error code: 3 Error message from server: Permission denied 

Любая помощь будет принята с благодарностью.

Примечание. Я успешно настроил подобный chft-доступ sftp на RHEL 7 и изо всех сил стараюсь понять, почему пользовательские разрешения, похоже, не работают через SFTP.

  • Невозможно выполнить chroot пользователя
  • Сценарий чтения оболочки для sftp
  • Передача файлов с помощью SSH и переключателя
  • Как сделать sftp для сервера, если имя пользователя содержит символ @
  • настройка sftp пользователей только вторые экземпляры sshd
  • Мониторинг передачи данных SSH и закрытие соединения, если данные не текут
  • SFTP chroot jail / access на основе шаблона
  • Можно ли создать непустой файл без write_close и переименовать событие?
  • 2 Solutions collect form web for “Как включить chrooted доступ SFTP к файлу в RHEL 6.5?”

    Примечание. Я успешно настроил подобный chft-доступ sftp на RHEL 7 и изо всех сил стараюсь понять, почему пользовательские разрешения, похоже, не работают через SFTP.

    Вероятно, этикетки SELinux пошли не так. Проверьте правильность и попытайтесь исправить их, используя

     # restorecon -RF / 

    Способ, которым я его настроил (для обучения классу программирования) в системе Debian:

    Сначала создайте пользователя. Вот сценарий, который я использую, он добавляет пользователя, создает домашний каталог, помещает их в группу группы заключенных, копирует в некоторые файлы по умолчанию, устанавливает разрешения и владельцы, создает базы данных sql и т. Д. Overkill для вас, вы можете использовать только первые несколько строк.

     #!/bin/bash # $1 is username to create # call as root@darkstar:~/ # ./script.sh username # add the user and put them in the jailusers group, set their home # directory so it is at http://www.example.com/username # and set their shell to /bin/false so they can't ssh in useradd -g jailusers -d /var/jailweb/www-example.com/$1 -s /bin/false $1 mkdir -p /var/jailweb/www-example.com/$1 # i copy some template files in for them - this is a programming class cp /root/jailtemplate-filez/*php /var/jailweb/www-example.com/$1 # fix the ownership of them - the /var/jailweb/www-example.com has been # chmodded as g+s so the webserver will be able to read all the files # note that this is NOT the ideal way to deal with this, but was needed # for my purposes chown $1.www-data /var/jailweb/www-example.com/$1 chown $1.www-data /var/jailweb/www-example.com/$1/index.php chmod -R 750 /var/jailweb/www-example.com/$1 # put their name on their front page sed -is/STUDENT/$1/g /var/jailweb/www-example.com/$1/index.php # generate a "random" password for sftp login salt="oh god there has to be a better way!" lpass=`echo $1 $salt | md5sum | cut -c 5-15` # generate a "different" "random" password # for them to use for mysql access mpass=`echo $1 $salt | md5sum | cut -c 13-22` # and set it for the userlogin programmatically echo $1:$lpass | chpasswd # create a sql scritp file to create their mysql accounts and # create a database for them, grant rights, etc cat webusers-mysql_template | sed s/USERNAME/$1/g | sed s/PASS/$mpass/g >> webusersusers.sql # put their mysql info into a php file in their web directory cat dbinfo.php-template | sed s/USERNAME/$1/g | sed s/PASSWORD/$mpass/g > /var/jailweb/www-example.com/$1/dbinfo.php # make sure the webserver can read it... this all SHOULD be setup for suexec # and having each user in their own primary group... then the sticky bit, etc # wouldn't be needed, but I'm lazy chown $1.www-data /var/jailweb/www-example.com/$1/dbinfo.php chmod 440 /var/jailweb/www-example.com/$1/*.php # if there needs to be a directory the webserver can # write to, uncomment these #mkdir -p /var/jailweb/www-example.com/$1/writeable #chown $1.www-data /var/jailweb/www-example.com/$1/writeable #chmod 770 /var/jailweb/www-example.com/$1/writeable 

    Затем в /etc/ssh/sshd_config обязательно раскомментируйте поставщика sftp по умолчанию и добавьте внутреннюю подсистему:

     #Subsystem sftp /usr/lib/openssh/sftp-server Subsystem sftp internal-sftp 

    Наконец, также в /etc/ssh/sshd_config добавьте свою группу. Я установил немного другой по умолчанию umask на мой –

     Match Group jailusers ChrootDirectory /var/jailweb ForceCommand internal-sftp -u 0027 

    Обратите внимание, что я указываю / chroot в каталог, содержащий их домашний каталог.

    Перезагрузите ssh-демона, и вам должно быть хорошо идти. Ваши пользователи должны иметь возможность добавлять / редактировать / удалять файлы в каталоге / username. Если вы хотите добавить общий каталог, вам необходимо создать его и изменить право собственности на него

    Interesting Posts

    Нет доступа к папке symlink на разделе NTFS

    Новая клавиатура

    Я не могу удалить папку с сервера

    Сравните существующий файл в двух разных каталогах, скопируйте, если не существует, иначе перезапишите его

    Sphinx Search shutdown down после `FATAL: accept () не удалось: Слишком много открытых файлов`

    Что такое общий сокет и как он относится к сетевому устройству?

    Почему эта команда ssh не работает? (cat ./file | ssh <user @ host> "cat | sudo -t -t 'cat> / root / location / file'")

    Как исправить «пропуск несовместимого /usr/lib/libc.a»

    Выполнение HTTP-процесса как единственного дочернего элемента в пространстве имен PID / NET

    чтение автономного архива Maildir с графическим почтовым клиентом

    Высокая загрузка процессора на встроенный Linux моего маршрутизатора

    Как создать загрузочную Linux-установку USB из ISO в OS X?

    Изменение измененной даты файла в зависимости от даты в имени файла

    Как отскакивать dnsmasq в opensuse 13.1

    настроить несколько ip на одном и том же vlan на компьютере centos 7

    Linux и Unix - лучшая ОС в мире.