FTPASSWD(8)

πŸ“¦
version 1.3.9d Β· 2 versions
, in ubuntu stonking

πŸ’… 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 --passwd is 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 --name and --passwd options 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 of ftpasswd. πŸ€–
  • -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 -l option. the comeback era. πŸ”“
  • --use-cracklib[=path] β€” makes ftpasswd use 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 Perl Crypt::Cracklib module 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