認証を外部コマンド cmd で行う。
外部コマンドに渡される認証用の値は、ユーザー名用 %U 及び、
パスワード用 %P のような、書式 "%format"
で指定します。
パラメーターは、コマンドライン引数、環境変数または、コマンドの標準入力に渡せます。
環境変数と、input-pattern が、
AUTHORIZER="-cmd{cmd}
のように省略されるなら、
AUTHORIZER="-cmd{cmd}{DG_USER=%U DG_PASS=%P}{USER %U\nPASS %P\n}"
として暗黙で指定されたかのように、ユーザー名とパスワードの組がデフォルトで渡されます。
コマンドによる認証の結果は、その出力文字列か、終了コードで表されます。
コマンドはその標準出力に結果を FTP プロトコルでのステータス応答形式で表し、
成功時 "230"、失敗時 "530" です。
他の場合、プロセスの終了コードが使われ、0 が成功、0 以外が失敗です。
例) ユーザー名を引数で渡し、パスワードを環境変数で渡す。
AUTHORIZER="-cmd{myauth %U}{MYPASS=%P}"
[myauth コマンドの内容]
#!/bin/sh
if [ "$1" = "user1" -a "$MYPASS" = "pass1" ]; then
echo "230 SUCCESS"
else
echo "530 FAILURE"
fi