FTPASSWD(8)
π FTPASSWD π
okay bestie, gather round, because we're about to talk about ftpasswd β that's the manual page for it in section 8, and it lives in the Debian GNU/Linux world. it's a little Perl script that does Big Things and honestly? she's iconic. π
β¨ NAME β¨
ftpasswd β manipulates ProFTPD authentication files. that's it, that's the whole vibe. π¦
πΈ SYNOPSIS πΈ
okay so here's all the ways you can summon her:
ftpasswd --help|-h|--version
ftpasswd --hash [ --des|--md5|--sha256|--sha512 ] [ --stdin ]
[ --use-cracklib[=path] ]
ftpasswd --passwd [ -F|--force ] [ --file=filename ] [--gecos=string ]
[ --gid=gid ] [ --des|--md5|--sha256|--sha512 ] [
--not-system-password ]
[ --not-previous-password ] [ --delete-user [ --stdin ]
[ --use-cracklib[=path] ] --home=path --name=username
--shell=shellpath --uid=uid
ftpasswd --group [ -F|--force ] [ --enable-group-passwd ] [
--delete-group ]
[ --file=filename ] [ -m|--member ] [
--des|--md5|--sha256|--sha512 ]
[ --stdin ] [ --use-cracklib[=path] ] --gid=gid --name=groupname
ftpasswd --passwd --change-password --name=username
ftpasswd --passwd -l|--lock --name=username
ftpasswd --passwd -u|--unlock --name=username
π«Ά DESCRIPTION π«Ά
so ftpasswd is a Perl script, right? and her whole job is manipulating the password and group files that play nice with ProFTPD's AuthUserFile and AuthGroupFile configuration directives. she's lowkey giving Apache's htpasswd program, but make it ProFTPD. π
you have to pick one of --passwd, --group, or --hash β no "I'll decide later" energy allowed. those three tell ftpasswd whether she's working on a passwd(5) format file, a group(5) format file, or just generating a password hash. pick your fighter. β¨
if you roll with --passwd, she creates a file in the passwd(5) format that's suitable for use with proftpd's AuthUserFile configuration directive. she'll prompt you for the password for the user, encrypt it, and write it out as the encrypted string. and by default, using --passwd will write output to ./ftpd.passwd. (yes, that exact path, no cap.) π
if you roll with --hash, she generates a hash of a password, exactly as it would appear in an AuthUserFile. the hash gets written to standard out. this hash is suitable for use with proftpd's UserPassword directive. very demure, very mindful. π
if you roll with --group, she creates a file in the group(5) format, suitable for use with proftpd's AuthGroupFile configuration directive. by default, using --group will write output to ./ftpd.group. π
π OPTIONS π
okay this is the part where I need you to lock in, because there are a LOT of them and I'm not skipping a single one. periodt.
-F,--forceβ if the password or group file you want to use already exists, she deletes it and writes a brand new one. and if you don't pass this? new entries just get appended to the file. no deleting, just adding. πΈ--file=filenameβ write output to the specified file (password or group files) instead of the default one. you're the main character, you pick the destination. β¨--gecos=stringβ a descriptive string for the given user, usually their full name. it's giving "government name energy". π--gid=gidβ set the primary group ID for this user when--passwdis specified. it's optional, and if you don't give it, it'll default to the value you passed for--uid. π--uid=uidβ the numerical user ID. just a number, bestie. π’-h,--help,--versionβ show the usage and version of the program. classic, essential, we love her. π«Ά--home=pathβ set the home directory for the user. required, so don't skip it. π--des,--md5,--sha256,--sha512β use the DES, MD5, SHA-256 or SHA-512 algorithm for encrypting passwords. the default is the MD5 algorithm. pick your encryption, queen. π--name=username,--name=groupnameβ the name of the user account or group. required, obviously. if the name doesn't exist in the specified output-file, an entry gets created for it; otherwise, the given fields will be updated. so she either makes it or she fixes it. π--shell=pathβ the shell for the user. required. and she recommends/bin/false, which is honestly so valid of her. π--change-passwordβ update only the password field for a user. this option requires that the--nameand--passwdoptions be used, but no others β so don't get creative. it 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. π--not-previous-passwordβ double-checks the given password against the previous password for the user, and requests that a new password be given if the entered password is the same as the previous password. we're not recycling, bestie. π--not-system-passwordβ double-checks the given password against the system password for the user, and asks for a new one if the entered password matches the system password. this helps enforce different passwords for different types of access. security queen behavior. π--stdinβ read the password directly from standard in instead of prompting for it. super useful for writing scripts that automate use offtpasswd. π€-l,--lockβ lock the password of the named account. this disables a password by changing it to a value which matches no possible encrypted value β specifically, it adds a'!'at the beginning of the password. π-u,--unlockβ unlock the password of the named account. this re-enables a password by changing it back to its previous value, i.e. the value before using the-loption. the comeback era. π--use-cracklib[=path]β makesftpasswduse Alec Muffet's cracklib routines in order to determine and prevent the use of bad or weak passwords. the optional path here specifies the path to the dictionary files to use, and the default path is/usr/lib/cracklib_dict. this requires the PerlCrypt::Cracklibmodule to be installed on your system, so check that first fr fr. π§--delete-userβ remove the entry for the given user name from the file. bye bestie. π--delete-groupβ remove the entry for the given group name from the file. also bye. π--enable-group-passwdβ prompt for a group password. this is disabled by default, as group passwords are not usually a good idea at all. not me warning you though. π©-m username,--member=usernameβ user to be a member of the group. this argument may be used multiple times to specify the full list of users to be members of this group. stack 'em up. π
π BUGS π
no known bugs at this time. if you discover any bugs, please contact the author. so like, if you find one, don't be shy β tell her. π
βοΈ AUTHOR βοΈ
this program has been written by TJ Saunders <tj@castaglia.org> as a contributed software for ProFTPD. we love a contributor. π
π SEE ALSO π
proftpd(8), passwd(5), group(5), ftpusers(8), ftpstats(8), proftpd.conf(5) β go read those too, they're all part of the lore. π
π CREDITS π
this manual page was written by Francesco Paolo Lovergine <frankie@debian.org>. last update Thu Mar 10 16:45:27 UTC 2011 by Mahyuddin Susanto <udienz@ubuntu.com> for the Debian GNU/Linux system (but may be used by others). she's got range, she's got reach. π
and that's the whole page, bestie!! π this is version 1.1.2, dated October 19, 2002, and it's the FTPASSWD(8) page from Debian GNU/Linux. absolutely iconic, no notes, slay. π
β¨π
π¦ where this page comes from
- ubuntu stonking: proftpd-core 1.3.9d~dfsg-1 Β· GPL-2.0-or-later
- Copyright (C) 2002 Francesco P. Lovergine
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms