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

Виртуальный каталог пользователей ProFTPD

Хорошо, я пытаюсь воспроизвести базовую настройку компании веб-хостинга здесь, аутентифицируя виртуальных пользователей через SQL и перенаправляя / помещая их в тюрьму в их каталог. Здесь я достиг почти всех целей, за исключением перенаправления / заключения их в свой каталог.

Каталоги хранятся в /home/ftp и вот что DefaultRoot установлен на. Я хочу, чтобы у каждого отдельного пользователя был отдельный каталог. Не похоже, что настройка homedir в SQL не имеет никакого эффекта. После входа в FTP с любым пользователем он входит в DefaultRoot без ограничения каталога или перенаправления.

Как мне выполнить эту последнюю задачу?

Попробуйте закомментировать DefaultRoot, я думаю, это может переопределить значения, считанные из бэкэнда базы данных.

РЕДАКТИРОВАТЬ:

Если установлен DefaultRoot и что-либо другое, кроме ~, то пользователь будет заключен в тюрьму в дереве с корнем DefaultRoot.

Если DefaultRoot равен ~, то пользователь будет заключен в тюрьму в дереве с корнем в его домашнем каталоге.

В дополнение к настройке DefaultRoot ~, как уже упоминалось, как выглядит ваша конфигурация SQL - вы действительно извлекаете ее из базы данных?

DefaultRoot ~

<IfModule mod_dso.c>
  LoadModule mod_sql.c
  LoadModule mod_sql_mysql.c
</IfModule>

SQLLogFile          /var/log/proftpd/mod_sql.log
PersistentPasswd    off
AuthPAM             off
AuthUserFile        /some/path/to/dummy/passwd.ftp
AuthGroupFile       /some/path/to/dummy/group.ftp
AuthOrder           mod_sql.c mod_auth_file.c

SQLConnectInfo      proftpd@localhost:3306 userdatabase password
SQLAuthTypes        Backend Crypt Plaintext OpenSSL
SQLUserInfo         user user_id password NULL NULL ftp_homedir NULL
SQLAuthenticate     users
SQLDefaultUID       14
SQLDefaultGID       50
SQLMinUserUID       13
SQLMinUserGID       49

Это более или менее краткий пример выполнения 100% аутентификации из базы данных и помещения их в тюрьму в их домашний адрес, как указано в БД. Если вы хотите также динамически создавать их домашний каталог при входе в систему (полезно, если вы добавляете их в базу данных и не хотите для этого входить на сервер), вы можете добавить:

CreateHome on dirmode 0755

... в конфиг. Два других фиктивных файла, перечисленных выше, соответствуют вашей установке ProFTPd, которая находится на сервере Red Hat / Centos:

passwd.ftp

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin

group.ftp

ftp:x:50:
nobody:x:99:

Все это заставляет ваших виртуальных пользователей иметь UID / GID 14:50 на жестком диске независимо от их имени пользователя для входа.