
私はFreeBSDシステムにユーザーを追加するためにpwを使用していますが、-Hオプションを使用したいと思います。例:
pw add user userfoo -H pwfile
マニュアル ページには、パスワードを「パスワード データベースに直接書き込むのに適した形式で暗号化して提供」する必要があると書かれています。
では、何が適しているのでしょうか? 具体的には、どのような暗号化アルゴリズムを使用すればよいのでしょうか、またファイルの形式は何でしょうか?
答え1
つまり、パスワードが書き込まれる形式/etc/master.passwd
、つまり、crypt(3)
その出力は通常、次の形式の MD5 ソルト付きハッシュになるということです。
$1$salt$hash
PS: 引用されている形式は奇妙です。FreeBSD のマニュアル ページには実際に次のように書かれています。
pw [−V etcdir] useradd [name|uid] [−C config] [−q] [−n name] [−u uid]
[−c comment] [−d dir] [−e date] [−p date] [−g group] [−G grouplist]
[−m] [−M mode] [−k dir] [−w method] [−s shell] [−o] [−L class]
[−h fd | −H fd] [−N] [−P] [−Y]
−H fd Read an encrypted password string from the specified file
descriptor. [...]
「add user」は「useradd」の別名のようですが、ファイル記述子はファイルではなく数値です (例: 1 は stdout、2 は stderr)。