afppasswd
afppasswd — AFP パスワード保守ユーティリティ
概要
afppasswd [-cdfmnr] [-a username | -d username] [-p directory] [-u minimum uid] [-w password]
afppasswd [-n]
説明
afppasswd は SRP(”Secure Remote Password”)UAMで使用される資格情報ディレクトリを作成および管理し、 -r オプションを使用すると、”Randnum exchange” および “2-Way Randnum exchange” UAM で使用される従来の afppasswd ファイルも管理する。
デフォルトでは、afppasswdはSRPモードで動作し、ユーザごとのソルトと検証子をSRP検証ディレクトリの個別のユーザファイルに保存する(デフォルトはnetatalk構成ディレクトリのafppasswd.srp)。代わりに、-rをrootとして渡すと、従来のRandnumファイル(デフォルトはnetatalk構成ディレクトリのafppasswd)で操作することができる。
呼び出しパターンは2つある:
- rootユーザとして, afppasswdは任意のシステムユーザの資格情報を管理する。 ユーザは-a username で指定する(新しいエントリの追加と既存エントリの更新の両方を行う)、または-d username で指定する(そのユーザのSRPを無効化する)、または資格情報ストアを-cで一度に初期化する。
- 通常ユーザとして, afppasswdは位置引数を取らず、呼び出しユーザ自身のSRPパスワードを変更する。呼び出し元は-pを使用して検証ディレクトリを選択できる。Randnumモードは引き続きroot専用である。
対象ユーザはすでにローカルシステムユーザとして存在している必要があることに注意。
フラットファイルレイアウトからアップグレードする場合は、afpdを停止し、rootとしてafppasswd -mを実行する。マイグレーションはすべてのレコードとローカルユーザを検証し、一時的な検証ディレクトリを構築して同期し、フラットファイルをafppasswd.srp.legacy(またはその名前が存在する場合は番号付きの兄弟)として保持し、完了したディレクトリをインストールする。ソルトと検証子は暗号変換なしでコピーされるため、ユーザは既存のSRPパスワードを保持する。非デフォルトのパスにあるストアを移行する場合は、-mとともに-pを使用する。
マイグレーションは、形式不正なレコード、重複するユーザ、数値UIDの衝突、不明なローカルユーザ、安全でないソースメタデータ、既存の検証ディレクトリ、部分的なマイグレーションの兄弟、および操作中に変更されるソースを拒否する。公開前に、失敗は一時ディレクトリを削除し、ソースをそのままにしておく。公開の失敗は自動ロールバックを引き起こす。ロールバック自体が完了できない場合、afppasswdは元のものを含む正確なバックアップ名を報告する。その条件が解決されるまでafpdを開始しないこと。
手動での復旧の場合、afpdを停止したままにし、構成されたパスにある不完全な検証ディレクトリを脇に移動し、報告された.legacyバックアップを構成されたパスに戻す。復元されたオブジェクトがグループおよびその他からアクセスできないroot所有のフラットファイルであることを確認した後、afppasswd -mを再試行する。自動マイグレーションが使用できない場合、パスワードリセットのフォールバックは、フラットファイルを脇に移動し、afppasswd -cを実行し、影響を受ける各パスワードをafppasswd -a usernameでリセットすることである。
SRP検証ディレクトリはroot所有で、ユーザが検索可能であり、グループやその他によって書き込み可能であってはならない。そのファイルは数値UIDで命名され、モード0600を持ち、1つのusername:hex_salt:hex_verifierレコードを含む。-cによって作成された無効なプレースホルダや-mによって保持されたものはroot所有である。Rootの-a操作は、実際の検証子を書き込み同期した後にのみ対応するユーザに所有権を移転する。ユーザ所有権はSRPログインを有効にし、登録済みのユーザが昇格した特権なしで自分の検証子を更新できるようにする。復元が登録済みの検証子のメタデータを変更した場合、afpdを停止し、そのファイルの所有権をローカルユーザに戻し、モードを0600に戻してからafpdを再起動する。例えば、/path/to/verifiers内のaliceの検証子を修復するには、rootとしてchown alice /path/to/verifiers/$(id -u alice)およびそのファイルに対してchmod 0600を実行する。この方法でroot所有の無効なプレースホルダを変更しないでください。パスワードを設定して再度有効化するには、afppasswd -a username を使用してください。複数のハードリンクを持つ検証子は置き換えるか、余分なリンクを削除する必要があります。
登録後、ユーザは自分の検証子を直接置き換えることもできる。afppasswdの古いパスワードの証明とオプションのCrackLibパスワード品質チェックは、ユーティリティチェックであり、サーバーが強制するパスワードポリシーではない。Rootは-dを使用してSRPアカウントを無効化できる:それはroot所有の無効なプレースホルダを書き込み、uidファイルが存在しない場合に作成する。新しいパスワードを設定してアカウントを再度有効化するには-aを使用する。無効化は既存のセッションを終了させたり、他のUAMを無効化したりしない。
既存のRandnum資格情報およびキーファイルは、root所有でグループやその他からアクセスできない単一リンクの通常ファイルである必要がある。シンボリックリンクはたどられない。
コンパイル時に組み込まれたデフォルトは、パッケージ化されたインストールをカバーする。非デフォルトのインストールの場合、-pを使用してafp.conf(5)の”srp verifier path“で構成されたのと同じディレクトリ、または-rを使用して”passwd file“で構成されたのと同じファイルを指定する。afppasswdはこのパスを解決するためにafp.confを読み込まない。カーネルは明示的に選択されたパスへのアクセスを強制する。他のユーザの資格情報ストアを選択したユーザは、単にアクセスエラーを受け取るだけである。
注意: 従来のRandnumおよび2-Way Randnum UAMは弱いパスワード保護しか提供せず、推奨しない。 SRP、DHX、またはDHX2を使用できない非常に古いAFPクライアントをサポートするためにのみ有効にすべき。 Randnumは、afppasswdファイルと同じパスにafppasswd.keyという名前のファイルを必要とする。 キーファイルには、Randnumが保存されたパスワードを暗号化するために使用する16進エンコードされた8バイトのDESキーが含まれている。 afppasswd -r -cは、このキーファイルが存在しない場合に作成し、既存のファイルを検証する。 キーファイルが存在し、有効でない限り、Randnumのパスワードの更新は続行を拒否する。 Randnumのパスワードは、rootがafppasswd -rを使用してのみリセットできる。 Randnum UAMは、キーファイルが存在しないか無効な場合、起動時に警告をログに記録するが、 修正されるまで認証は失敗する。
キーファイルには、オプションの改行を含む16個の16進文字が正確に含まれている必要がある。0123456789ABCDEFのような値で、サーバごとにこの例の値を再利用するのではなく、新しいランダムなキーを生成すると良い。
例
管理者がSRP検証ディレクトリを初期化し、新しいユーザを追加する:
example% sudo afppasswd -c
example% sudo afppasswd -a newuser
Enter NEW AFP password: (非表示)
Enter NEW AFP password again: (非表示)
afppasswd: updated SRP verifier.
管理者が既存ユーザのSRPパスワードを更新する:
example% sudo afppasswd -a someuser
管理者がafpdを停止した後、デフォルトの従来のフラットSRPファイルを移行する:
example% sudo afppasswd -m
afppasswd: migrated 2 SRP verifiers; original retained as /etc/netatalk/afppasswd.srp.legacy
ローカルユーザが自分のSRPパスワードを変更する:
example% afppasswd
管理者が非デフォルトのパスで資格情報を管理する:
example% sudo afppasswd -r -c -p /usr/local/etc/afppasswd
example% sudo afppasswd -r -a olduser -p /usr/local/etc/afppasswd
Enter NEW AFP password: (非表示)
Enter NEW AFP password again: (非表示)
afppasswd: updated Randnum password.
オプション
-a username
指定されたユーザを追加または更新する。管理者が特定のユーザに対して操作する場合に必要である。 非rootの呼び出しは常に呼び出し元のユーザに対して操作し、このオプションを受け付けない。SRPモードでは、 パスワードの設定が成功すると、ファイル所有権をそのユーザに移転することでユーザの検証子も有効になる。 既存のSRP検証子は任意のパーミッションモードを持つことができる; 処理前にパーミッションは0600にリセットされる。 ファイルは依然として指定されたユーザまたはrootが所有し、正規ファイルであり、正確に1つのハードリンクを持つ必要がある。
-d username
rootとして、指定されたユーザのSRP資格情報を無効化する。 uid検証子は、root所有のモード0600の無効なプレースホルダに置き換えられる; 欠落している検証子はその状態で作成される。 これは冪等であり、再利用されたuidをクリーンアップする際に便利である。 新しいパスワードを設定してユーザを再度有効化するには-aを使用する。 このオプションは-pのみを受け入れ、-rと一緒に使用することはできない。 既存の検証子は任意のパーミッションモードを持つことができる; パーミッションは0600にリセットされる。 -aと同じ所有権およびファイルタイプの要件が適用される。
-c
パスワードファイルまたは検証ディレクトリを作成して初期化する。 SRPモードでは、-uの閾値以上のuidを持つ各ローカルシステムユーザのroot所有のモード0600の 検証子ファイルが無効なプレースホルダで埋められる。 ユーザがSRP経由でログインしたり、自分のSRPパスワードを変更したりする前に、 rootが-aで個別にパスワードを設定する必要がある。 SRPの初期化は既存の資格情報パスを拒否する; 従来のフラットファイルを-mで移行するか、 意図的に空のストアから開始する前に脇に移動する。-rを使用すると、 Randnum UAM用の補助的なafppasswd.keyファイルも作成または検証される。
-f
-r -cを使用すると、既存のRandnum資格情報ファイルと、 必要に応じて無効なRandnumキーファイルを置き換えることができる。 この従来のオプションはSRPモードでは利用できない。
-m
rootとして、選択されたパスにある従来のフラットSRP検証子ファイルを、 パスワードをリセットせずにuidごとの検証ディレクトリレイアウトに移行する。 -mと組み合わせることができるオプションは-pのみである。 操作全体を通してafpdは停止したままでなければならない。
-r
rootとして、SRP検証子ファイルの代わりに、従来のRandnum afppasswdファイルを操作する。 どのオブジェクトが読み込まれるか、作成されるか、およびどのコンパイル時デフォルトが使用されるかに影響する。 通常のユーザはこのオプションを使用できない。
-p path
コンパイル時に組み込まれた資格情報パスを上書きする。SRPモードでは、pathは検証ディレクトリである。 -rを使用すると、pathはRandnumパスワードファイルである。
-n
もしcracklibサポートがnetatalkに組み込まれており、 cracklib辞書に対して実行されたパスワードを持つことができる場合、このオプションはこの呼び出しのパスワード強度検証を無効にする。
-u minimum uid
-cがローカルユーザデータベースを歩いてファイルを埋めるときに、afppasswdが考慮する最小のユーザID(uid)。 デフォルトは100。
-w password
パスワードを対話形式で入力するのではなく、password stringをパスワードとして使用する。 パスワードは平文で端末履歴に残るため、このオプションは絶対に必要な場合にのみ使用してください。
ファイル
afppasswd.srp
netatalk構成ディレクトリのデフォルトSRP検証子ディレクトリ。 各数値uidファイルには1つのusername:hex_salt:hex_verifierレコードが含まれる。 -pで上書きすることができる。
afppasswd.srp.legacy, afppasswd.srp.legacy.N
-mによって元のフラット検証子ファイルのために使用される衝突安全なバックアップ名。
afppasswd
netatalk構成ディレクトリのデフォルトの従来のRandnumファイル。-rでのみ使用される。 -pで上書きすることができる。
afppasswd.key
従来のRandnumファイルのコンパニオンキーファイル。 オプションの改行を含む16個の16進文字が正確に含まれている必要がある。
関連項目
afpd(8), afp.conf(5)
著者
CONTRIBUTORS を参照