Используя sftp и одновременно имея доступ к файлу www
Я запутался по поводу разрешений и доступа к sftp в Ubuntu.
У меня есть пользователь, который имеет доступ к папке www:
<username>:www-data
Я установил следующее в sshd_config:
Subsystem sftp internal-sftp
Match group www-data
X11Forwarding no
ChrootDirectory /var/www
AllowTcpForwarding no
ForceCommand internal-sftp
Match
Match user <username>
X11Forwarding no
ChrootDirectory /var/www/<theirwebsite>
AllowTcpForwarding no
ForceCommand internal-sftp
Match
Я изменил в sshd_config местоположение author_keys (из-за Ubuntu, шифрующего домашнюю папку)
AuthorizedKeysFile /etc/ssh/%u/authorized_keys
я имею chown -R username:www-data to all the www directories
И чмод их тоже до 755
Иногда я могу получить доступ через sftp, но тогда он не позволяет мне редактировать файлы. В других случаях я не могу получить доступ вообще.
Я был бы очень признателен за любое объяснение или, возможно, указать куда-нибудь файл справки.
ура
1 ответ
В игру вступают 2 разных элемента:
- Возможность входа на сервер через ssh
- Разрешения на файлы.
Все изменения, которые вы внесли в файлы SSH, связаны с разрешением доступа к системе, но файлы будут принадлежать пользователю, который вошел в SSH.
Вы можете читать файлы ОК, потому что 755
В разрешениях сказано: "Владелец может читать, писать и выполнять", любой может читать и выполнять.
Взлом (и менее безопасный способ) решения проблемы - убедиться, что файлы являются chmod 777
(IE любой может прочитать, удалить и редактировать их).
Лучшим способом было бы ввести имя пользователя в www-data
группа (в /etc/groups
) и дайте файлы 775
разрешения (т.е. владелец и группа могут читать, писать и выполнять, все остальные могут просто читать и выполнять)
Я не видел это раньше, но sshd_config
команды, если они работают - и у меня нет оснований полагать, что они не будут - ограничивают пользователя своим собственным каталогом и только выполнением sftp
, Это ничего не может сделать с изменением владельца файлов.