Назад | Перейти на главную страницу

Как добавить пользователя с доступом по SFTP / FTP в папку '/ var / www / html / website_abc' на Amazon EC2 Centos?

Возможный дубликат:
Разрешения каталога Linux

Я работаю с некоторыми сторонними разработчиками, и я хотел бы предоставить SFTP (или FTP) доступ к корневой папке для веб-сайта, над которым они работают, т.е. '/var/www/html/website_abc' чтобы они могли загружать туда файлы. Обратите внимание, что я размещаю другие свои веб-сайты на том же экземпляре EC2, например. '/var/www/html/website_xyz'.

Просто чтобы подчеркнуть, что я работаю с несколькими веб-сайтами на одном экземпляре EC2, структура веб-сайтов следующая:

/ var / www / html /
/ var / www / html / website_abc
...
/ var / www / html / website_xyz

Мои цели следующие:

Я провел поиск, но большинство людей говорили о том, как получить доступ к EC2 через SFTP, который я уже могу использовать с WinSCP.

Разъяснения:

Частично решено Мне удалось достичь своих целей с помощью OpenSSH (я создаю папку .ssh внутри / var / www / html / website_abc / и генерирую закрытый ключ и передаю его сторонним разработчикам). Я также узнал, что никогда не должен отдавать файл закрытого ключа, который мне дал AWS. Все еще изучаю chroot.

По умолчанию службы, которые предоставляют удаленную оболочку, например ssh или telnet, или интерактивный удаленный сеанс для таких команд, как sftp, позволяют локальному пользователю переходить в любой каталог, для которого у него есть разрешения, и извлекать копию любого файла, к которому у него есть доступ.

Как общая конфигурация безопасности это неудачно, потому что есть много файлов и каталогов, которые по необходимости доступны для чтения всем. Например, вот я - пользователь без полномочий root на каком-то удаленном сервере CentOS;

$ cd /etc
-bash-3.2$ ls -1
acpi
adjtime
aliases
...

например Я могу получить доступ к множеству вещей, которые в идеале вы хотели бы ограничить от какого-то неизвестного пользователя, которому вы хотите предоставить локальный доступ.

Вот я смотрю на всех локальных пользователей, настроенных в /etc/passwd файл;

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...

Системы Unix предоставляют chroot команда, которая позволяет сбросить / пользователя в какой-либо каталог в иерархии файловой системы, где они не могут получить доступ к файлам и каталогам «более высокого уровня».

Однако в вашем случае было бы целесообразно предоставить виртуальный chroot, реализованный службой удаленной оболочки. sftp можно легко настроить, чтобы ограничить локального пользователя определенным подмножеством файловой системы, используя конфигурацию в

следовательно, в вашем случае вы хотите chroot в adeveloper пользователя в /var/www/html/website_abc каталог.

Вы можете установить каталог chroot для вашего пользователя, чтобы ограничить его подкаталогом /var/www/html/website_abc как в /etc/ssh/sshd_config;

Для этого требуется openssh-server более поздней версии, чем 4.8 ?, поэтому, вероятно, потребуется CentOS 6.2.

Match Group sftp
    ChrootDirectory %h
    AllowTcpForwarding no

(не проверено, см. man sshd_config для подтверждения синтаксиса)

а затем добавьте этих пользователей в группу sftp;

 groupadd sftp
 usermod -d /var/www/html/website_abc adeveloper
 usermod -G sftp adeveloper

Что касается общих ключей

вам следует создать дополнительную пару ключей для пользователей-разработчиков и отправить ее своему консультанту. (или, альтернативно, попросите их отправить вам свой открытый ключ и добавить его в файл authorized_keys для adeveloper)

никогда не отдавайте свой закрытый ключ, поэтому он называется закрытым ;-)

традиционные альтернативы ftp

vsftp / proftp и т. д. также поддерживают конфигурации chroot, но в наши дни конфигурации на основе ssh являются нормальным способом, а поддержка ftp является только исторической.

здесь есть пара ссылок на руководства;
http://www.techrepublic.com/blog/opensource/chroot-users-with-openssh-an-easier-way-to-confine-users-to-their-home-directories/229

http://www.howtoforge.com/chrooted-ssh-sftp-tutorial-debian-lenny