vsftpd
を使用して、ftp専用ユーザーのカップル用にftpをセットアップしたい。 FTPを構成して、ローカルユーザーアクセスを有効にしました。正常に動作します。しかし、ユーザーのシェルを/usr/sbin/nologin
に編集すると、次のエラーでFTPにログインできませんでした。
Response: 220 Welcome to the Scent Library's File Service.
Command: USER marketftp
Response: 331 Please specify the password.
Command: PASS ******
Response: 530 Login incorrect.
これが私がやったことです:
すべてのftp専用ユーザーは、ホームディレクトリとして/srv/ftp
を持ちます。ディレクトリ情報は
/srv/ftp: drwxr-xr-x 3 root slftp 4.0K 2012-02-09 17:20 ftp/
すべてのftp専用ユーザーはグループslftp
に属します。
私はadduser
でユーザーを作成し、次の/etc/passwd
エントリで終了しました:marketftp:x:1001:1001::/srv/ftp:/usr/sbin/nologin
そして、これは/etc/group
:slftp:x:1001:marketftp
vsftpd
は、vsftpd.chroot_list
のローカルユーザーを除き、ユーザーを自分の家に制限するように次のように構成されています。
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
私の問題はどこですか? FTPは通常のローカルユーザーがログインできるため、接続は問題ありません。しかし、ftpのみのユーザーがログインできないのはなぜですか?
here から取得
Q)ヘルプ!ローカルユーザーはログインできません。
A) There are various possible problems.
A1) By default, vsftpd disables any logins other than anonymous logins. Put
local_enable=YES in your /etc/vsftpd.conf to allow local users to log in.
A2) vsftpd tries to link with PAM. (Run "ldd vsftpd" and look for libpam to
find out whether this has happened or not). If vsftpd links with PAM, then
you will need to have a PAM file installed for the vsftpd service. There is
a sample one for RedHat systems included in the "RedHat" directory - put it
under /etc/pam.d
A3) If vsftpd didn't link with PAM, then there are various possible issues. Is
the user's Shell in /etc/shells? If you have shadowed passwords, does your
system have a "shadow.h" file in the include path?
**A4) If you are not using PAM, then vsftpd will do its own check for a valid
user Shell in /etc/shells. You may need to disable this if you use an invalid
Shell to disable logins other than FTP logins. Put check_Shell=NO in your
/etc/vsftpd.conf.**
あなたはケースA4です
Man vsftpd.confのcheck_Shellを見てください:
Note! This option only has an effect for non-PAM builds of vsftpd.
If disabled, vsftpd will not check /etc/shells for a valid user
Shell for local logins.
Default: YES
/ usr/sbin/nologinを/ etc/shellsに追加できます。シンプルで簡単なソリューション。
もう1つは、vsftpd.conf/PAM構成を変更することです。
PAMの場合は、この「auth ...」行をコメント化します。
$ grep shells /etc/pam.d/vsftpd
auth required pam_shells.so
自分のホームフォルダーへの書き込みアクセス権はありません。
(そのRWX R-X R-X、所有者root、グループslftp)
これは通常、FTPが機能しないのに十分な原因です。