CKPASSWD(8) InterNetNews Documentation CKPASSWD(8) (NAME) ckpasswd - NNTP (SYNOPSIS) ckpasswd [-gs] [-d database] [-f filename] [-u username -p password] (DESCRIPTION) ckpasswd nnrpd (stanza) readers.conf . nnrpd readers.conf(5) . ckpasswd nnrpd nnrpd(8) . INN PAM PAM . getpwnam(3) . getpwnam(3) ( getpwnam(3) (root) ). PAM ckpasswd "nnrpd" "ckpasswd" PAM . PAM ( ) << (EXAMPLES)>> pam(7) pam.conf(4) . PAM ckpasswd crypt(3) crypt(3) . () libc libcrypt . (OPTIONS) -d database getpwnam(3) ( ndbm gdbm dbm ) . ckpasswd database.dir database.pag . INN Perl . : #!/usr/bin/perl use NDBM_File; use Fcntl; tie (%db, 'NDBM_File', '/path/to/database', O_RDWR|O_CREAT, 0640) or die "Cannot open /path/to/database: $!\n"; $| = 1; print "Username: "; my $user = ; chomp $user; print "Password: "; my $passwd = ; chomp $passwd; my @alphabet = ('.', '/', 0..9, 'A'..'Z', 'a'..'z'); my $salt = join '', @alphabet[rand 64, rand 64]; $db{$user} = crypt ($passwd, $salt); untie %db; (echo ) . dbmpasswd . ndbm gdbm dbm . -f filename getpwnam(3) . : username:$5$Hlb2yXPd$2nOO/QR9P1mnRFr/i6L9ybxbgSDXd4UlatKqbcY4eoB joe:FCjOJnpOo50IE:Old weak hash algorithm used for Joe (:) . crypt(3) () . ckpasswd . ("#") . INN OpenSSL Perl ( ). filename "user" "pass" "user:" SHA-256 : % openssl passwd -5 pass $5$UIhtJSBOaC0Ap3Vk$nbKgmykshoQ2HmvA3s/nI.X4uhhNHBKTYhBS3pYLjJ6 openssl-passwd(1) . crypt(3) ( "man 3 crypt" "man 5 crypt" ). OpenSSL Perl SHA-256 ( "YourSalt" "5" SHA-256 ): % perl -le 'print crypt("pass", q{$5$YourSalt$})' $5$YourSalt$V5hqwFg1nhKb5as6md9KTe5b2NyavsMS6dBYVKfp5W7 Perl crypt(3) . yescript "$y$j9T$YourSalt$" crypt Perl "y" yescript "j9T" crypt_gensalt(3) ( yescript "YESCRYPT_DEFAULTS" "j" ) "YourSalt" . salt ( yescript) ( NIST SP 800-63B ) . "pass" "YourSalt" : % perl -le 'print crypt("pass", q{$y$j9T$YourSalt$})' $y$j9T$YourSalt$X4tB48vKNDT6mK0vNOc7ppKPWvEsyMg5LwoQfO50r2A salt ( ): % perl -le 'print join("", (".", "/", 0..9, A..Z, a..z)[map {rand 64} (1..12)])' k2W/17eJu58r -g "user@group" readers.conf. -d -f . -p password password nnrpd. ( ) ckpasswd nnrpd . -u . -s getspnam(3) getpwnam(3). /etc/shadow . nnrpd(8) . getspnam(3) ckpasswd setgid ( "shadow") setuid root . ckpasswd ! . . << (SECURITY CONSIDERATIONS)>> readers.conf(5) . -u username username. ( ) ckpasswd nnrpd . -p . (EXAMPLES) nnrpd(8) ckpasswd readers.conf(5) . PAM /etc/pam.conf ckpasswd : nnrpd auth required pam_unix.so nnrpd account required pam_unix.so nnrpd /etc/pam.d : auth required pam_unix.so account required pam_unix.so . (include) (stack ) ckpasswd . PAM . ckpasswd ( "ClientAuthname:") ( "ClientPassword:") . : (echo 'ClientAuthname: test' ; echo 'ClientPassword: testing') \ | ckpasswd -f /path/to/passwd/file "test" "testing" /path/to/passwd/file . ckpasswd "User:test" "0" . . (HISTORY) Russ Allbery InterNetNews. (SEE ALSO) crypt(3), nnrpd(8), pam(7), readers.conf(5). INN 2.7.4 2023-03-07 CKPASSWD(8)