{
    "mode": "man",
    "parameter": "FTPASSWD",
    "section": "8",
    "url": "https://www.chedong.com/phpMan.php/man/FTPASSWD/8/json",
    "generated": "2026-10-06T09:58:56Z",
    "synopsis": "ftpasswd --help|-h|--version\nftpasswd --hash  [ --des|--md5|--sha256|--sha512 ] [ --stdin ]\n[ --use-cracklib[=path] ]\nftpasswd --passwd [ -F|--force ] [ --file=filename ] [--gecos=string ]\n[ --gid=gid ] [ --des|--md5|--sha256|--sha512 ] [ --not-system-password ]\n[ --not-previous-password ] [ --delete-user [ --stdin ]\n[ --use-cracklib[=path] ] --home=path --name=username\n--shell=shellpath --uid=uid\nftpasswd --group [ -F|--force ] [ --enable-group-passwd ] [ --delete-group ]\n[ --file=filename ] [ -m|--member ] [ --des|--md5|--sha256|--sha512 ]\n[ --stdin ] [ --use-cracklib[=path] ] --gid=gid --name=groupname\nftpasswd --passwd --change-password --name=username\nftpasswd --passwd -l|--lock --name=username\nftpasswd --passwd -u|--unlock --name=username",
    "sections": {
        "NAME": {
            "content": "ftpasswd - manipulates ProFTPD authentication files\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "ftpasswd --help|-h|--version\n\nftpasswd --hash  [ --des|--md5|--sha256|--sha512 ] [ --stdin ]\n[ --use-cracklib[=path] ]\n\nftpasswd --passwd [ -F|--force ] [ --file=filename ] [--gecos=string ]\n[ --gid=gid ] [ --des|--md5|--sha256|--sha512 ] [ --not-system-password ]\n[ --not-previous-password ] [ --delete-user [ --stdin ]\n[ --use-cracklib[=path] ] --home=path --name=username\n--shell=shellpath --uid=uid\n\nftpasswd --group [ -F|--force ] [ --enable-group-passwd ] [ --delete-group ]\n[ --file=filename ] [ -m|--member ] [ --des|--md5|--sha256|--sha512 ]\n[ --stdin ] [ --use-cracklib[=path] ] --gid=gid --name=groupname\n\nftpasswd --passwd --change-password --name=username\n\nftpasswd --passwd -l|--lock --name=username\n\nftpasswd --passwd -u|--unlock --name=username\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "ftpasswd  is a Perl script which can be used to manipulate the password and group files suit‐\nable for use with ProFTPD AuthUserFile and AuthGroupFile configuration directives.  The  idea\nis somewhat similar to Apache's htpasswd program.\n\nRequired  options are --passwd, --group, or --hash.  These specify whether ftpasswd is to op‐\nerate on a passwd(5) format file, on a group(5) format file, or simply to generate a password\nhash, respectively.\n\nIf used with --passwd, ftpasswd creates a file in the passwd(5) format, suitable for use with\nproftpd's AuthUserFile configuration directive.  You will be prompted for the password to use\nof the user, which will be encrypted, and written out as the encrypted string.   By  default,\nusing --passwd will write output to \"./ftpd.passwd\",\n\nIf used with --hash, ftpasswd generates a hash of a password, as would appear in an AuthUser‐\nFile.   The  hash  is  written to standard out.  This hash is suitable for use with proftpd's\nUserPassword directive.\n\nIf used with --group, ftpasswd creates a file in the group(5) format, suitable for  use  with\nproftpd's AuthGroupFile configuration directive.  By default, using --group will write output\nto \"./ftpd.group\".\n\n",
            "subsections": []
        },
        "OPTIONS": {
            "content": "",
            "subsections": [
                {
                    "name": "-F, --force",
                    "content": "If  the  password or group file be used already exists, delete it and write a new one.\nBy default, new entries will be appended to the file.\n\n--file=filename\nWrite output to specified file (password or group files), rather than default one.\n\n--gecos=string\nDescriptive string for the given user (usually the user's full name).\n\n--gid=gid\nSet primary group ID for this user (optional, will default to given --uid value if ab‐\nsent) when --passwd is specified.\n\n--uid=uid\nnumerical user ID.\n",
                    "flag": "-F",
                    "long": "--force"
                },
                {
                    "name": "-h, --help, --version",
                    "content": "Show usage and version of the program.\n\n--home=path\nSet the home directory for the user (required).\n",
                    "flag": "-h",
                    "long": "--version"
                },
                {
                    "name": "--des, --md5, --sha256, --sha512",
                    "content": "Use the DES, MD5, SHA-256 or SHA-512 algorithm for encrypting passwords.  The  default\nis the MD5 algorithm.\n\n--name=username, --name=groupname\nName of the user account or group (required).  If the name does not exist in the spec‐\nified  output-file,  an entry will be created for it. Otherwise, the given fields will\nbe updated.\n\n--shell=path\nShell for the user (required).  Recommended: /bin/false\n",
                    "long": "--sha512"
                },
                {
                    "name": "--change-password",
                    "content": "Update only the password field for a user.  This option requires that the  --name  and\n--passwd  options  be used, but no others.  This also double-checks the given password\nagainst the user's current password in the existing passwd file, and requests  that  a\nnew password be given if the entered password is the same as the current password.\n",
                    "long": "--change-password"
                },
                {
                    "name": "--not-previous-password",
                    "content": "Double-checks  the  given password against the previous password for the user, and re‐\nquests that a new password be given if the entered password is the same as the  previ‐\nous password.\n",
                    "long": "--not-previous-password"
                },
                {
                    "name": "--not-system-password",
                    "content": "Double-checks  the  given  password  against the system password for the user, and re‐\nquests that a new password be given if the entered password is the same as the  system\npassword.  This helps to enforce different passwords for different types of access.\n",
                    "long": "--not-system-password"
                },
                {
                    "name": "--stdin",
                    "content": "Read  the  password  directly  from standard in rather than prompting for it.  This is\nuseful for writing scripts that automate use of ftpasswd.\n",
                    "long": "--stdin"
                },
                {
                    "name": "-l, --lock",
                    "content": "Lock the password of the named account. This option disables a password by changing it\nto a value which matches no possible encrypted value (it adds a '!' at  the  beginning\nof the password).\n",
                    "flag": "-l",
                    "long": "--lock"
                },
                {
                    "name": "-u, --unlock",
                    "content": "Unlock  the password of the named account. This option re-enables a password by chang‐\ning the password back to its previous value (to the value before using the -l option).\n\n--use-cracklib[=path]\nCauses ftpasswd to use Alec Muffet's cracklib routines in order to determine and  pre‐\nvent the use of bad or weak passwords.  The optional path to this option specifies the\npath  to  the dictionary files to use -- default path is /usr/lib/cracklibdict.  This\nrequires the Perl Crypt::Cracklib module to be installed on your system.\n",
                    "flag": "-u",
                    "long": "--unlock"
                },
                {
                    "name": "--delete-user",
                    "content": "Remove the entry for the given user name from the file.\n",
                    "long": "--delete-user"
                },
                {
                    "name": "--delete-group",
                    "content": "Remove the entry for the given group name from the file.\n",
                    "long": "--delete-group"
                },
                {
                    "name": "--enable-group-passwd",
                    "content": "Prompt for a group password.  This is disabled by default, as group passwords are  not\nusually a good idea at all.\n",
                    "long": "--enable-group-passwd"
                },
                {
                    "name": "-m",
                    "content": "user to be a member of the group.  This argument may be used This argument may be used\nmultiple times to specify the full list of users to be members of this group.\n\n",
                    "flag": "-m"
                }
            ]
        },
        "BUGS": {
            "content": "No known bugs at this time.  If you discover any bugs, please contact the author.\n\n",
            "subsections": []
        },
        "AUTHOR": {
            "content": "This program has been written by TJ Saunders <tj@castaglia.org> as a contributed software for\nProFTPD.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "proftpd(8), passwd(5), group(5), ftpusers(8), ftpstats(8), proftpd.conf(5)\n\n",
            "subsections": []
        },
        "CREDITS": {
            "content": "This  manual page was written by Francesco Paolo Lovergine <frankie@debian.org>.  Last update\nThu Mar 10 16:45:27  UTC  2011  by  Mahyuddin  Susanto  <udienz@ubuntu.com>  for  the  Debian\nGNU/Linux system (but may be used by others).\n\n1.1.2                                     October 19, 2002                               FTPASSWD(8)",
            "subsections": []
        }
    },
    "summary": "ftpasswd - manipulates ProFTPD authentication files",
    "flags": [
        {
            "flag": "-F",
            "long": "--force",
            "arg": null,
            "description": "If the password or group file be used already exists, delete it and write a new one. By default, new entries will be appended to the file. --file=filename Write output to specified file (password or group files), rather than default one. --gecos=string Descriptive string for the given user (usually the user's full name). --gid=gid Set primary group ID for this user (optional, will default to given --uid value if ab‐ sent) when --passwd is specified. --uid=uid numerical user ID."
        },
        {
            "flag": "-h",
            "long": "--version",
            "arg": null,
            "description": "Show usage and version of the program. --home=path Set the home directory for the user (required)."
        },
        {
            "flag": "",
            "long": "--sha512",
            "arg": null,
            "description": "Use the DES, MD5, SHA-256 or SHA-512 algorithm for encrypting passwords. The default is the MD5 algorithm. --name=username, --name=groupname Name of the user account or group (required). If the name does not exist in the spec‐ ified output-file, an entry will be created for it. Otherwise, the given fields will be updated. --shell=path Shell for the user (required). Recommended: /bin/false"
        },
        {
            "flag": "",
            "long": "--change-password",
            "arg": null,
            "description": "Update only the password field for a user. This option requires that the --name and --passwd options be used, but no others. This also double-checks the given password against the user's current password in the existing passwd file, and requests that a new password be given if the entered password is the same as the current password."
        },
        {
            "flag": "",
            "long": "--not-previous-password",
            "arg": null,
            "description": "Double-checks the given password against the previous password for the user, and re‐ quests that a new password be given if the entered password is the same as the previ‐ ous password."
        },
        {
            "flag": "",
            "long": "--not-system-password",
            "arg": null,
            "description": "Double-checks the given password against the system password for the user, and re‐ quests that a new password be given if the entered password is the same as the system password. This helps to enforce different passwords for different types of access."
        },
        {
            "flag": "",
            "long": "--stdin",
            "arg": null,
            "description": "Read the password directly from standard in rather than prompting for it. This is useful for writing scripts that automate use of ftpasswd."
        },
        {
            "flag": "-l",
            "long": "--lock",
            "arg": null,
            "description": "Lock the password of the named account. This option disables a password by changing it to a value which matches no possible encrypted value (it adds a '!' at the beginning of the password)."
        },
        {
            "flag": "-u",
            "long": "--unlock",
            "arg": null,
            "description": "Unlock the password of the named account. This option re-enables a password by chang‐ ing the password back to its previous value (to the value before using the -l option). --use-cracklib[=path] Causes ftpasswd to use Alec Muffet's cracklib routines in order to determine and pre‐ vent the use of bad or weak passwords. The optional path to this option specifies the path to the dictionary files to use -- default path is /usr/lib/cracklibdict. This requires the Perl Crypt::Cracklib module to be installed on your system."
        },
        {
            "flag": "",
            "long": "--delete-user",
            "arg": null,
            "description": "Remove the entry for the given user name from the file."
        },
        {
            "flag": "",
            "long": "--delete-group",
            "arg": null,
            "description": "Remove the entry for the given group name from the file."
        },
        {
            "flag": "",
            "long": "--enable-group-passwd",
            "arg": null,
            "description": "Prompt for a group password. This is disabled by default, as group passwords are not usually a good idea at all."
        },
        {
            "flag": "-m",
            "long": null,
            "arg": null,
            "description": "user to be a member of the group. This argument may be used This argument may be used multiple times to specify the full list of users to be members of this group."
        }
    ],
    "examples": [],
    "see_also": [
        {
            "name": "proftpd",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/proftpd/8/json"
        },
        {
            "name": "passwd",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/passwd/5/json"
        },
        {
            "name": "group",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/group/5/json"
        },
        {
            "name": "ftpusers",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/ftpusers/8/json"
        },
        {
            "name": "ftpstats",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/ftpstats/8/json"
        },
        {
            "name": "proftpd.conf",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/proftpd.conf/5/json"
        }
    ]
}