Кто-нибудь может увидеть, что я сделал неправильно в этой процедуре? Я могу подключиться к серверу как новый пользователь и нахожусь в каталоге chrooted, но, несмотря на установку всех надлежащих корневых разрешений, я не могу добавлять файлы или каталоги.
sudo mkdir /var/host
sudo groupadd sftp
sudo useradd john -d / -M -N -G sftp -s /bin/false
sudo passwd john
sudo nano /etc/ssh/sshd_config
Match Group sftp
ChrootDirectory /var/host
ForceCommand internal-sftp
service ssh restart
Вот каталог разрешений
drwxr-xr-x 2 root root 4096 Jan 24 14:27 host
* ОБНОВЛЕНИЕ *
Хорошо, теперь я понимаю, что понимаю. Дайте мне знать, если это выглядит хорошо:
sudo mkdir /var/sftp
sudo mkdir /var/sftp/host
chown john:sftp /var/sftp/host
sudo groupadd sftp
sudo useradd john -d /var/sftp/host -M -N -G sftp -s /bin/false
sudo passwd john
sudo nano /etc/ssh/sshd_config
Match Group sftp
ChrootDirectory /var/sftp/host
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
sudo service ssh restart
Единственная проблема с этим решением состоит в том, что только Джон может добавлять файлы и каталоги, я думаю, или может любой член SFTP?
Я не буду делать пользователя с домашним каталогом, установленным в /
.
/var/host/
правильно принадлежит root и 755, поскольку это необходимо для работы chroot
. Поскольку он принадлежит root, конечно, пользователь john
не может писать в него.
Для пользователя john
вы должны создать подкаталоги под /var/host/
, для которых у него есть разрешение на запись. john
никогда не сможет писать напрямую в chroot (/var/host/
), так как это будет небезопасно, поэтому sftp
этого не позволяет.
Ниже приведено пошаговое руководство, позволяющее:
Сначала отредактируйте файл / etc / ssh / sshd_config:
sudo nano /etc/ssh/sshd
Прокрутите вниз и измените:
PasswordAuthentication yes
и добавьте это внизу:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Нажмите Ctrl-X, чтобы выйти и сохранить.
Теперь добавьте пользователя:
sudo useradd bob
sudo passwd bob
Теперь добавьте группы и отключите ssh:
sudo groupadd sftpusers
sudo usermod -g sftpusers bob
sudo usermod -s /usr/bin/rssh bob
sudo usermod -d /home/bob bob
Теперь установите разрешения:
sudo chown root:root /home/bob/
sudo chmod 755 /home/bob/
sudo mkdir /home/bob/uploads
sudo chown bob /home/bob/uploads
sudo service sshd restart
Все это при входе в систему от имени пользователя root (ec2-пользователь в Amazon Linux AMI)