Изменение разрешений на запись для защищенного SFTP запрещает вход в систему

Я изучил многие веб-сайты и форумы о том, как настроить пользователя SFTP, который помещен в определенный каталог с помощью CHROOT. Вот шаги, которые я выполнил, но я не могу получить разрешение на запись для работы.

Настройка

sshd_config

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp


Match group webmaster
        X11Forwarding no
        ChrootDirectory %h
        AllowTcpForwarding no
        ForceCommand internal-sftp

Создать папку

mkdir /var/www/sites

[ 1119] Создать пользователя и группу

useradd uploader
passwd uploader
usermod -d /var/www/sites uploader
groupadd webmaster uploader
groupadd www-data uploader

Разрешения и владение

chown root:root /var/www
chmod 755 /var/www/sites

Теперь с этими настройками пользователь, добавивший файл, может выполнять SFTP-вход в дом каталог, но не может записать в каталог.

Имеются 2 типичные ошибки: я либо не могу войти, либо у меня нет прав на запись.

Ошибка входа в систему

Error:    Network error: Software caused connection abort
Error:    Could not connect to server


Changing permissions of /var/www/sites to 775 or 777 causes login error.
chown /var/www/sites to uploader:root causes login error.
chwon root:webmaster or root:www-data I have no write permissions

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

Спасибо.

14
задан 13 April 2013 в 06:26

2 ответа

Обнаружил решение. Пользователь заключен в тюрьму /var/www/sites. Затем я создал еще одну папку /var/www/sites/site1.

Я использую:

chown root:webmaster /var/www/sites/site1 
chmod 775 /var/www/sites/site1

Это позволило домашнему каталогу иметь правильные разрешения для входа в систему, а затем иметь возможность записи в следующую папку.

Если пользователю нужен доступ для записи в /var/www/sites, то вы должны заключить пользователя в тюрьму /var/www с правами владения root:root и правами доступа 755. Затем вам нужно предоставить /var/www/sites права собственности root: (ваша группа ) и разрешения 775.

0
ответ дан 13 April 2013 в 06:26

Возможно, самое лучшее решение:

mkdir /var/www/sites/myfirstuser/hisownsite
mkdir /var/www/sites/myseconduser/hisownsite

...

chown root:root /var/www/sites /var/www/sites/{myfirstuser,myseconduser} && chmod 755 /var/www/sites/{myfirstuser,myseconduser}

chmod 775 /var/www/sites/myfirstuser/hisownsite
chmod 775 /var/www/sites/myseconduser/hisownsite
chgrp www-data /www/sites/myfirstuser/hisownsite /var/www/sites/myseconduser/hisownsite

Добавьте пользователей:

useradd -d /var/www/sites/myfirstuser -s /bin/false -g www-data  dev1
useradd -d /var/www/sites/myseconduser -s /bin/false -g www-data dev2
passwd dev1
passwd dev2

Затем для каждого созданного пользователя добавьте тег ssh, например: (вы также можете использовать директиву Match Group, как в вашем примере вместо «Match User»)

Match User dev1
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

Match user dev2
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

Таким образом, вы можете управлять всеми нужными пользователями в изолированной среде.

Hth, Фабрицио

0
ответ дан 13 April 2013 в 06:26

Другие вопросы по тегам:

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