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

На вашем месте я бы гораздо меньше беспокоился о самом изображении, чем о том, что вы клонировали. Я думаю, что восстановление такого типа не должно быть проблемой. Но где я мог бы ожидать проблемы, так это с вашей Windows. Эта ОС (не только XP) настолько чувствительна и практически плачет, если вы меняете основные аппаратные части. Включая жесткий диск, на который она установлена. Изменение аппаратного обеспечения после установки не всегда проходит правильно и часто означает, что ОС будет жаловаться на что-то.

Я предлагаю вам попробовать, потому что из-за природы вопроса вы никогда не получите действительно удовлетворительного ответа, потому что нет общего абсолютного ответа на вопросы совместимости, на которые вы хотели получить ответы. Иногда это работает, иногда нет; в мире существует так много различных аппаратных установок, что вы не сможете учесть большинство из них в одном ответе. Это ситуационный вопрос.

1
21.07.2017, 02:51
2 ответа

Я настроил его (для проведения занятий по программированию )в системе Debian:

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

#!/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 -i s/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. Если вы хотите добавить общий каталог, вам необходимо создать его и изменить владельца

.
0
28.01.2020, 00:51

Note: I have successfully set up a similar sftp chrooted access on RHEL 7 and am struggling to understand why the user permissions seem to not be working via SFTP.

Вероятно, метки SELinux пошли не так. Проверьте их правильность и попробуйте исправить с помощью

# restorecon -RF /
0
28.01.2020, 00:51

Теги

Похожие вопросы