nastya97core
@nastya97core
Начинающий программист

Почему в sftp не я не могу получить разрешение на запись и как мне сделать, чтобы записывалось?

Здравствуйте.
Чего я хочу добиться:
Иметь пользователя, который при подключении через sftp он сразу попадал в разрешённую ему директорию и мог делать всё что угодно, однако за пределы той директории не выходил (даже не видел содержимое тех директорий). Нужно чтобы это всё работало без mount и без ln
Вот какие команды я делаю:
addgroup –-system sftpusers
nano /etc/ssh/sshd_config
#там я пишу
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp -u 0007
AllowTcpForwarding no
X11Forwarding no

#далее продолжаем
useradd -d /var/www/mysite.com -s /bin/false -g sftpusers user4 
passwd user4

mkdir /var/www
mkdir /var/www/mysite.com

find /var/www/mysite.com -type f -exec chmod 660 {} \;
find /var/www/mysite.com -type d -exec chmod 770 {} \;
chown -R user4:sftpusers /var/www/mysite.com;
chmod 755 /var/www/mysite.com;
chown root:root /var/www/mysite.com;

systemctl restart sshd


После всех этих команд пользователь при подключении попадает в папку /var/www/mysite.com , но он не может ничего там делать. Частично я догадываюсь, что причина в команде chown root:root /var/www/mysite.com; , однако без неё пользователь вообще не может подключиться к файловой системе.

Подскажите, что нужно сделать, чтобы всё заработало и я могла из пользователя user4 править папку mysite.com?

p.s. за основу моих команд бралась вот эта статья: https://wiki.dieg.info/sftp
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
ValdikSS
@ValdikSS
Необходимо, чтобы ChrootDirectory принадлежала root:root, и чтобы пользователь ничего не мог в ней создать.

useradd -d /var/www -s /bin/false -g sftpusers user4

Вложенная директория, которая нужна пользователю, должна иметь его права.

chown -R user4:sftpusers /var/www/mysite.com
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы