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

Как ProFTPD / centOS обрабатывает разрешения каталогов для виртуальных пользователей ftp?

На proftpd / centos настраиваю использование виртуального пользователя. Я могу войти в систему как виртуальный пользователь, но у меня нет прав на запись для этих пользователей.

Файл proftpd.conf выглядит так:

ServerName                      "ftp01"
DefaultServer                   on
DefaultRoot                     ~
AuthPAMConfig                   proftpd
AuthOrder                       mod_auth_file.c  mod_auth_unix.c
RequireValidShell  off
AuthUserFile  /etc/proftpd/ftpd.passwd
AuthGroupFile /etc/proftpd/ftpd.group
AuthPAM off
User                            nobody
Group                           nobody
MaxInstances                    20
UseSendfile                     off

Вот содержимое ftpd.passwd:

user1:hashfrompasswd:50:50::/var/ftp/user1:/bin/false

и ftpd.group:

ftp:x:50:user1

Выход ls -lah из домашнего каталога (установите разрешение 755):

# ls -lah
insgesamt 44K
drwxr-xr-x. 10 root ftp      4,0K 27. Dez 11:19 .
drwxr-xr-x. 21 root root     4,0K  8. Jul 2013  ..
drwxr-xr-x.  3 ftp  user1    4,0K  7. Jan 15:04 user1

Но когда я подключаюсь к ftp-серверу как user1, я могу подключиться и войти в систему, но когда я пытаюсь разместить файл или создать каталог, я получаю отказ в доступе с сервера. Как я могу решить эту проблему?

У вашего домашнего сервера есть разрешения 755, что означает, что владелец (в данном случае root) может читать, писать, выполнять (rwx), но группа (ftp) может только читать, выполнять (rx).

Либо измените владельца каталога на ftp, либо добавьте права записи группы в домашний каталог (например: 775).

РЕДАКТИРОВАТЬ! Не могу поверить, что я пропустил это при первом чтении:

Взгляните на список ваших каталогов "Ls". Обратите внимание на расширение. Наверняка SELinux. Либо для temp установлено значение Permissive and test, либо, лучше, установите контекст безопасности:

setsebool -P allow_ftpd_full_access on

В вашем "ls -lah" неправильное владение пользователем / группой - но проблема не в этом! Ваша проблема в том, что каталог должен быть доступен для записи системному пользователю, от имени которого работает Proftpd. Это не виртуальная учетная запись пользователя, которую вы создали для входа по FTP.

В вашей конфигурации вы указали, что "демон" должен работать как никто: никто, с помощью строк Пользователь и Группа

User                            nobody
Group                           nobody

Отрегулируйте право собственности на каталог на none: nobody и разрешения на чтение + запись для пользователя и группы (660). В качестве последнего ВРЕМЕННОГО курорта [ПЛОХАЯ форма, будьте ОЧЕНЬ ОСТОРОЖНЫ!] Установите dir perms полностью разрешающим (777) - и проверьте свои загрузки. Поверните его, как только вы узнаете, что он МОЖЕТ работать и является проблемой владельца / разрешений. Это сохранит ваше рассудок и предотвратит выброс оборудования из окна.

Убедитесь, что у вас действительно есть «никто», и, наконец, убедитесь, что GID и UID, используемые для виртуальных пользователей, соответствуют этому системному пользователю.