{
    "content": [
        {
            "type": "text",
            "text": "# pam_ftp(8) (man)\n\n**Summary:** pamftp - PAM module for anonymous access module\n\n**Synopsis:** pamftp.so [debug] [ignore] [users=XXX,YYY,...]\n\n## Examples\n\n- `Add the following line to /etc/pam.d/ftpd to handle ftp style anonymous login:`\n- `# ftpd; add ftp-specifics. These lines enable anonymous ftp over`\n- `#       standard UN*X access (the listfile entry blocks access to`\n- `#       users listed in /etc/ftpusers)`\n- `auth    sufficient  pamftp.so`\n- `auth    required    pamunix.so usefirstpass`\n- `auth    required    pamlistfile.so \\`\n- `onerr=succeed item=user sense=deny file=/etc/ftpusers`\n\n## See Also\n\n- pam.conf(5)\n- pam.d(5)\n- pam(7)\n\n## Section Outline\n\n- **NAME** (2 lines)\n- **SYNOPSIS** (2 lines)\n- **DESCRIPTION** (10 lines)\n- **OPTIONS** (1 lines) — 2 subsections\n  - debug (2 lines)\n  - ignore (7 lines)\n- **MODULE TYPES PROVIDED** (2 lines)\n- **RETURN VALUES** (6 lines)\n- **EXAMPLES** (14 lines)\n- **SEE ALSO** (2 lines)\n- **AUTHOR** (5 lines)\n\n## Full Content\n\n### NAME\n\npamftp - PAM module for anonymous access module\n\n### SYNOPSIS\n\npamftp.so [debug] [ignore] [users=XXX,YYY,...]\n\n### DESCRIPTION\n\npamftp is a PAM module which provides a pluggable anonymous ftp mode of access.\n\nThis module intercepts the user's name and password. If the name is ftp or anonymous, the\nuser's password is broken up at the @ delimiter into a PAMRUSER and a PAMRHOST part; these\npam-items being set accordingly. The username (PAMUSER) is set to ftp. In this case the\nmodule succeeds. Alternatively, the module sets the PAMAUTHTOK item with the entered\npassword and fails.\n\nThis module is not safe and easily spoofable.\n\n### OPTIONS\n\n#### debug\n\nPrint debug information.\n\n#### ignore\n\nPay no attention to the email address of the user (if supplied).\n\nftp=XXX,YYY,...\nInstead of ftp or anonymous, provide anonymous login to the comma separated list of\nusers: XXX,YYY,.... Should the applicant enter one of these usernames the returned\nusername is set to the first in the list: XXX.\n\n### MODULE TYPES PROVIDED\n\nOnly the auth module type is provided.\n\n### RETURN VALUES\n\nPAMSUCCESS\nThe authentication was successful.\n\nPAMUSERUNKNOWN\nUser not known.\n\n### EXAMPLES\n\nAdd the following line to /etc/pam.d/ftpd to handle ftp style anonymous login:\n\n#\n# ftpd; add ftp-specifics. These lines enable anonymous ftp over\n#       standard UN*X access (the listfile entry blocks access to\n#       users listed in /etc/ftpusers)\n#\nauth    sufficient  pamftp.so\nauth    required    pamunix.so usefirstpass\nauth    required    pamlistfile.so \\\nonerr=succeed item=user sense=deny file=/etc/ftpusers\n\n### SEE ALSO\n\npam.conf(5), pam.d(5), pam(7)\n\n### AUTHOR\n\npamftp was written by Andrew G. Morgan <morgan@kernel.org>.\n\n\n\nLinux-PAM Manual                             06/08/2020                                   PAMFTP(8)\n\n"
        }
    ],
    "structuredContent": {
        "command": "pam_ftp",
        "section": "8",
        "mode": "man",
        "summary": "pamftp - PAM module for anonymous access module",
        "synopsis": "pamftp.so [debug] [ignore] [users=XXX,YYY,...]",
        "flags": [],
        "examples": [
            "Add the following line to /etc/pam.d/ftpd to handle ftp style anonymous login:",
            "# ftpd; add ftp-specifics. These lines enable anonymous ftp over",
            "#       standard UN*X access (the listfile entry blocks access to",
            "#       users listed in /etc/ftpusers)",
            "auth    sufficient  pamftp.so",
            "auth    required    pamunix.so usefirstpass",
            "auth    required    pamlistfile.so \\",
            "onerr=succeed item=user sense=deny file=/etc/ftpusers"
        ],
        "see_also": [
            {
                "name": "pam.conf",
                "section": "5",
                "url": "https://www.chedong.com/phpMan.php/man/pam.conf/5/json"
            },
            {
                "name": "pam.d",
                "section": "5",
                "url": "https://www.chedong.com/phpMan.php/man/pam.d/5/json"
            },
            {
                "name": "pam",
                "section": "7",
                "url": "https://www.chedong.com/phpMan.php/man/pam/7/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 10,
                "subsections": []
            },
            {
                "name": "OPTIONS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "debug",
                        "lines": 2
                    },
                    {
                        "name": "ignore",
                        "lines": 7
                    }
                ]
            },
            {
                "name": "MODULE TYPES PROVIDED",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "RETURN VALUES",
                "lines": 6,
                "subsections": []
            },
            {
                "name": "EXAMPLES",
                "lines": 14,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 5,
                "subsections": []
            }
        ]
    }
}