web-dev-qa-db-ja.com

FTPは/ usr / sbin / nologinユーザーを許可しません

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/groupslftp:x:1001:marketftp

  • vsftpdは、vsftpd.chroot_listのローカルユーザーを除き、ユーザーを自分の家に制限するように次のように構成されています。

    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd.chroot_list
    

私の問題はどこですか? FTPは通常のローカルユーザーがログインできるため、接続は問題ありません。しかし、ftpのみのユーザーがログインできないのはなぜですか?

8
steveyang

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です

10
kaji

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
3
kupson

自分のホームフォルダーへの書き込みアクセス権はありません。

(そのRWX R-X R-X、所有者root、グループslftp

これは通常、FTPが機能しないのに十分な原因です。

0
Tonny