ProFTPD 가상 사용자 디렉토리

ProFTPD 가상 사용자 디렉토리

좋습니다. 여기서는 SQL을 통해 가상 사용자를 인증하고 가상 사용자를 해당 디렉터리로 리디렉션/감금하여 웹 호스팅 회사의 기본 설정을 복제하려고 합니다. 여기서 대부분의 목표를 달성했습니다.디렉터리로 리디렉션/감금하는 경우는 제외됩니다.

디렉토리는 다음에 저장되며 /home/ftp이것이 DefaultRoot설정됩니다. 나는 각 개별 사용자가 자신의 디렉토리를 갖고 감옥에 가두기를 원합니다. homedirSQL의 설정이 아무런 영향을 미치지 않는 것 같습니다 . 임의의 사용자로 FTP에 로그인하면 DefaultRoot디렉터리 감옥이나 리디렉션 없이 로그인됩니다 .

이 마지막 작업을 어떻게 수행합니까?

답변1

DefaultRoot를 주석 처리해 보세요. 데이터베이스 백엔드에서 읽은 값을 재정의할 수 있을 것 같습니다.

편집하다:

DefaultRoot가 설정되고 ~ 이외의 다른 것이 있으면 사용자는 DefaultRoot에 루트가 있는 트리에 갇히게 됩니다.

DefaultRoot가 ~이면 사용자는 it 홈 디렉터리에 루트가 있는 트리에 갇히게 됩니다.

답변2

언급한 대로 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% 인증을 수행하고 DB에 나열된 홈 디렉터리에 가두는 다소 간결한 예입니다. 로그인할 때 홈 디렉토리를 동적으로 생성하려는 경우(데이터베이스에 추가하고 이를 수행하기 위해 서버에 로그인하고 싶지 않은 경우 유용함) 다음을 추가할 수 있습니다.

CreateHome on dirmode 0755

...구성에. 위에 나열된 다른 두 개의 더미 파일은 Red Hat/Centos 서버에 있는 ProFTPd 설치와 일치합니다.

비밀번호.ftp

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

그룹.ftp

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

이로 인해 가상 사용자는 로그인 사용자 이름에 관계없이 하드 드라이브에서 14:50의 UID/GID를 갖게 됩니다.

관련 정보