Go to main content
マニュアルページ セク ション 1: ユー ザーコマンド

印刷ビューの終了

更新: 2016年12月6日
 
 

passwd (1)

名前

passwd - ログインパスワードおよびパスワード属性の変更

形式

passwd [-r files | -r ldap | 
-r nis] [name]
passwd [-r files] [-egh] [
name]
passwd [-r files] -s [
-a]
passwd [-r files] -s [
name]
passwd [-r files] [-d | 
-l | -u | -N] [-f] [
-n min] 
     [-w warn] [-x 
max] name
passwd -r ldap [-egh] [
name]
passwd [-r ldap ] -s [
-a]
passwd [-r ldap ] -s [
name]
passwd -r ldap [-d | -l | -u | -N
] [-f] [-n min] 
     [-w warn] [-x 
max] name
passwd -r nis [-egh] [
name]

説明

passwd コマンドは、パスワードを変更したり、あるいはユーザーのログイン name に関連するパスワードの属性を表示したりします。さらに、承認されたユーザーは、passwd を使用すると、任意のログイン name に関連付けられたパスワードおよび属性を登録または変更できます。

パスワードを変更する場合、passwd は、古いパスワードがあれば、それを入力するよう要求します。次に、新しいパスワードを 2 回入力するように要求します。古いパスワードを入力すると、passwd は、そのパスワードが十分に時間経過しているかをチェックします。時間経過が十分でない場合、passwd は終了します。詳細は、pwconv(1M) および shadow(4) を参照してください。

pwconv コマンドは、/etc/passwd の情報を使用して /etc/shadow を作成および更新します。pwconv は、/etc/passwd のパスワードフィールド内の x の特殊な値に依存します。この「x」という値は、ユーザー用のパスワードがすでに /etc/shadow にあり、修正するべきではないということを表します。

時間経過が十分である場合、新しいパスワードの構造が要求に合うかどうかチェックが行われます。新しいパスワードを 2 回入力した時点で、2 つの新しいパスワードが比較されます。2 つのパスワードが同じでない場合は、新しいパスワードに対して、最大 2 回までプロンプトが繰り返されます。

パスワードは、次の要求に合うように作らなければなりません。

  • 各パスワードは、PASSLENGTH 文字以上でなければなりません。PASSLENGTH は、/etc/default/passwd に定義され、6 に設定されています。PASSLENGTH を 8 文字を超える文字数に設定するには、8 文字を超える文字数をサポートするアルゴリズムを使用して policy.conf(4) を構成する必要があります。

  • 各パスワードは、/etc/default/passwd に指定されている複雑さの制約を満たす必要があります。

  • 各パスワードは、/etc/default/passwd に指定されている構成済み辞書のメンバーと同じであってはいけません。

  • パスワード履歴チェックをサポートしているネームサービス用のアカウントで旧パスワード履歴が定義されている場合、新しいパスワードは、旧パスワード履歴に含まれるものであってはいけません。

前述の条件がすべて満たされた場合、デフォルトでは passwd コマンドは /etc/nsswitch.conf を参照してパスワード更新を実行すべきレポジトリ (記録場所) を決めます。そのために passwd および passwd_compat エントリを検索します。これらのエントリに対応したリソースつまりレポジトリが更新されます。ただし、サポートされるパスワード更新の構成は制限されており、次の規則に従う必要があります。

  • passwd 行には、1 つ、2 つ、または 3 つのエントリが含まれている必要があります。

  • 最初の passwd エントリはファイルである必要があります。

  • ファイル以外の passwd エントリ nisldap、および compat は無視され、パスワード更新中にスキップされます。

  • このようなデータベースでは、パスワードを更新するためのソース固有のツールを使用する必要があります。

ユーザーのパスワードが、ローカル files エントリ内のほかに、いずれかのネームサービス内に格納されている場合、passwd コマンドはその両方を更新します。ネームサービス内のパスワードとローカル files エントリ内のパスワードは異なっている可能性があります。特定のパスワードリポジトリを変更するには、passwd –r を使用してください。

passwd は、承認されたユーザーに古いパスワードを入力するよう要求しません。

LDAP が有効になっている場合、ネイティブ LDAP クライアントシステム上の承認されたユーザーは、古い LDAP パスワードを要求されずにパスワードを変更できます。

デフォルトでは、ほかのユーザーのパスワードを変更することを承認されているユーザーでも、構成済みパスワードポリシーに従う必要があります。pam_authtok_check(5) を参照してください。

通常、引数なしで入力された passwd は現在のユーザーのパスワードを変更します。ユーザーがログインしたあと、役割または別のユーザーになるために su(1M) を呼び出した場合、passwd は、役割または新しいユーザーのパスワードではなく、元のユーザーのパスワードを変更します。

–s 引数は、承認されたユーザーに制限されます。

表示の書式は、次のようになります。

name status mm/dd/yy min max warn

パスワードの有効期限の情報が存在しない場合は、次のようになります。

name status

各情報の意味は次のとおりです。

name

ユーザーのログイン ID。

status

name のパスワードステータス。

status フィールドは次の値をとることができます。

LK

アカウントがロックされています。passwd -l が実行されたか、または認証失敗の数が許容される構成済みの最大数に達したためにアカウントが自動的にロックされました。policy.conf(4)user_attr(4)、および「セキュリティー」セクションを参照してください。

NL

アカウントがUNIX 以外の認証アカウントです。passwd –N が実行されました。「セキュリティー」を参照してください。この状態のアカウントは、システムポリシーまたはユーザーごとのポリシーが LOCK_AFTER_RETRIES=YES になっていると、自動的にはロックされません。

NP

パスワードがないため、非認証でアクセス可能であることを表します。

PS

パスワードがあることを表します。

UN

パスワードフィールドのデータが不明です。認識可能なハッシュパスワードや上記のエントリのどちらでもありません。有効なパスワードハッシュについては、crypt(3C) を参照してください。

UP

このアカウントはまだ管理者によって有効化されていないため、使用できません。「セキュリティー」を参照してください。

mm/dd/yy

name のパスワードが最近変更された日付(すべてのパスワードの日付は、グリニッジ標準時(ユニバーサル時間) を使用して決定されます。したがって、時差があるところでは最大 1 日ずれることがあるので注意してください) 。

min

name に対するパスワード変更に最低限必要な日数。MINWEEKS/etc/default/passwd にあり、NULL に設定されています。

max

パスワードが name に対して有効である最大日数。MAXWEEKS/etc/default/passwd にあり、NULL に設定されています。

warn

パスワードの有効期限切れが近いことを示す警告を name が受ける日を、max に相対的な日数で表します。

セキュリティー

パスワードを変更するとき、passwdpam(3PAM) を使用します。サービス名 passwd を使用して PAM を呼び出し、パスワード変更のための認証とパスワードにサービスモジュールタイプ auth を使用します。

アカウントをロックすると (–l オプション)、そのアカウントのすべてのログインまたは遅延実行 (at(1)batch(1)cron(1M) など) でも使用できなくなります。–N オプションを使用すると、UNIX 以外の認証方法による遅延実行またはログインは引き続き許可される一方で、パスワードに基づくログインを禁止できます。

ロックされたアカウントがパスワードを持ったことのない場合、そのステータスをアクティブなパスワードを持つ状態に直接変更することはできません。–d を参照してください。ロックされる前にパスワードを持っていた、ロックされたアカウントでパスワードを変更すると、アカウントをロック解除せずにパスワードが変更されます。アカウントのロック解除については、–u を参照してください。承認された管理者は、パスワードを割り当てるか、または passwd –N を実行して UNIX 以外の認証または遅延実行に対してのみアクティブにすることによって、まだアクティブな状態になっていないアカウントをアクティブにすることができます。

アカウントは非アクティブになったあとでロックされることがあります。このようなアカウントをロック解除するには、–u または –f オプションを使用します。–u の場合、パスワードは変更されません。–f を使用すると強制的にパスワードが変更されます。

オプション

サポートしているオプションは、次のとおりです。

–a

すべてのエントリのパスワードの属性を表示します。–s オプションとともにのみ使用し、name を指定してはいけません。files および ldap リポジトリの場合、承認されたユーザーに制限されます。

–e

ログインシェルを変更します。files リポジトリの場合、これはスーパーユーザーに対してのみ機能します。通常ユーザーは、ldapnis、または nisplus リポジトリを変更できます。シェルの選択は、getusershell(3C) によって制限されています。ユーザーが現在 getusershell によって許可されていないシェルを保持している場合、そのシェルはルートのみが変更できます。

–g

gecos (finger) 情報を変更します。files リポジトリの場合、これはスーパーユーザーに対してのみ機能します。通常ユーザーは、ldapnis、または nisplus リポジトリを変更できます。

–h

ホームディレクトリを変更します。

–r

処理の対象とするレポジトリ (記録場所) を指定します。サポートされているリポジトリは、filesldap、または nis です。

–s name

name が示すログイン名用のパスワード属性を表示します。file および ldap リポジトリの場合、これは承認されたユーザーに対してのみ機能します。これは、パスワードの有効期限をサポートしていない nis リポジトリに対してはまったく機能しません。

このオプションの出力 (このオプションのみ) は、「確実」で構文解析可能です。形式は username のあとにスペースが続き、そのあとに次のコードのいずれかが続きます。

これを解析するコードが不明なコードに対して柔軟性を持つように、今後新しいコードが追加される可能性があります。既存のすべてのコードの長さは 2 文字ですが、コードが常にこの長さであるとは限りません。

現在のステータスコードは次のとおりです。

LK

アカウントがロックされています。passwd -l が実行されたか、または認証失敗の数が許容される構成済みの最大数に達したためにアカウントが自動的にロックされました。policy.conf(4)user_attr(4)、および「セキュリティー」セクションを参照してください。

NL

アカウントがUNIX 以外の認証アカウントです。passwd –N が実行されました。「セキュリティー」を参照してください。この状態のアカウントは、システムポリシーまたはユーザーごとのポリシーが LOCK_AFTER_RETRIES=YES になっていると、自動的にはロックされません。

NP

アカウントはパスワードを持っていません。passwd -d が実行されました。

PS

アカウントは有効なパスワードを持っている可能性が高いです。

UN

パスワードフィールドのデータが不明です。認識可能なハッシュパスワードや上記のエントリのどちらでもありません。有効なパスワードハッシュについては、crypt(3C) を参照してください。

UP

このアカウントはまだ管理者によって有効化されていないため、使用できません。「セキュリティー」を参照してください。

承認されたユーザーのオプション

既存のアカウントをロックおよびロック解除できるように、管理者に User Security プロファイルを付与する必要があります。このプロファイルには、新しく作成されたアカウントを有効化する機能、パスワードの有効期限オプションを設定する機能、およびパスワード属性を表示する機能も用意されています。次のリストには、さまざまな操作を実行するために必要な承認を示します。

承認されたユーザーのみが、次のオプションを使用できます。

–d

name に対するパスワードを削除します。ログイン name に対するパスワードを入力するように要求することはありません。これは、files および ldap リポジトリにのみ適用できます。

login(1) のオプション PASSREQ=YES が構成されている場合、このアカウントはログインできません。PASSREQ=YES はデフォルト設定です。

–f

name のパスワードの期限を切ることによって、次のログインセッションで パスワードを強制的にユーザーに変更させます。このオプションは、非アクティブが原因でロックされたアカウントをロック解除する場合に便利です。

–l

すでにロックされている場合を除き、name のアカウントをロックします。アカウントのロック解除については、–u オプションを参照してください。UNIX 以外の認証または遅延実行のみとしてマークされているアカウントはロック可能であり、ロック解除されると同じ状態に戻ります。

–N

name に対するパスワードエントリを、UNIX 認証でのログインには使用できないが、そのアカウントをロックしない値にします。この値を削除する場合は –d オプションを、アカウントをロックする場合は –l を参照してください。

–n min

name の最小のフィールドを設定します。min フィールドには、name に対するパスワード変更の間の最小日数が含まれています。minmax より大きい場合は、ユーザーはパスワードを変更できません。max-1 (時間経過が無効) に設定されている場合を除き、このオプションは常に –x オプションとともに使用してください。この場合は、min を設定する必要はありません。

–u

エントリ name に対してロックされたパスワードをロック解除します。–u オプションは、失敗した試行回数のためにロックされたか、または –l オプションを使用して管理上ロックされたアカウントのロック解除に役立ちます。UNIX 以外の認証アカウントとしてマークされたアカウント (passwd –N) は、ロック解除されると、その状態に戻ります。

–w warn

name の警告フィールドを設定します。warn フィールドには、パスワードの期限が切れ、ユーザーに警告が表示されるまでの日数が含まれています。このオプションは、パスワードの有効期限が切れている場合は無効です。

–x max

name の最大のフィールドを設定します。max フィールドには、パスワードが name に対して有効な日数が含まれています。max-1 に設定されると、name の有効期限はただちに無効になります。

オペランド

次のオペランドを指定できます。

name

ユーザーのログイン名。

環境変数

環境内に LC_* 変数、つまり LC_CTYPE、LC_MESSAGES、LC_TIME、LC_COLLATE、LC_NUMERIC、LC_MONETARY (environ(5) を参照) のいずれも設定されていない場合、対応するロケールカテゴリごとの passwd の動作は、LANG 環境変数の値によって決定されます。LC_ALL が設定されていれば、その内容が LANG 変数やその他の LC_* 変数より優先されます。前述の変数が環境にまったく設定されていなければ、C ロケール (米国スタイル) が passwd の動作を決定します。

LC_CTYPE

passwd の文字の処理方法を決定します。LC_CTYPE に有効な値が設定されていると、passwd は、そのロケールにあった文字を含むテキストやファイル名を表示および処理できます。passwd は拡張 UNIX コード (EUC) も表示および処理できます。この場合、文字は 1 バイト幅、2 バイト幅、3 バイト幅のいずれも使用できます。また、passwd は 1、2、またはそれ以上のカラム幅の EUC 文字も処理することができます。C ロケール においては、ISO 8859-1の文字だけが有効です。

LC_MESSAGES

診断メッセージや情報メッセージの表示方法を決定します。また、メッセージの言語とスタイル、肯定・否定の応答形式も決定します。C ロケールでは、メッセージはプログラム自身が使用しているデフォルトの形 (通常、米語) で表示されます。

終了ステータス

passwd は、処理終了時に次のいずれかの値を返します。

0

成功。

1

アクセス権が拒否されました。

2

オプションの組み合わせが無効です。

3

予期しない失敗。パスワードファイルは変更されませんでした。

4

予期しない失敗。パスワードファイルがありません。

5

パスワードファイルは使用中です。あとで再試行してください。

6

オプションに対する引数が無効です。

7

有効期限のオプションが無効です。

8

メモリーがありません。

9

システムエラー。

10

アカウントが期限切れです。

11

パスワード情報は変更されませんでした。

ファイル

/etc/default/passwd

次のフラグのデフォルト値を /etc/default/passwd で設定できます。例: MAXWEEKS=26

DICTIONDBDIR

生成された辞書データベースが格納されるディレクトリ。デフォルトは /var/passwd

DICTIONLISTDICTIONDBDIR のどちらも指定しない場合、辞書チェックは実行されません。

DICTIONLIST

DICTIONLIST には、DICTIONLIST=file1, file2, file3 などのコンマで区切られた辞書ファイルのリストを含めることができます。各辞書ファイルには複数の行が含まれ、各行は 1 つの単語と 1 つの NEWLINE 文字で構成されます。完全パス名を指定する必要があります。これらのファイルの単語は 1 つのデータベースにマージされ、パスワードが辞書の単語に基づいているかどうかを判断します。

スペルチェック辞書 (/usr/share/lib/dict/words など) を DICTIONLIST に指定できますが、最初に前処理を行う必要があります。簡単な方法については、次の「DICTIONMINWORDLENGTH」を参照してください。

DICTIONLISTDICTIONDBDIR のどちらも指定しない場合、辞書チェックは実行されません。

辞書データベースを事前に構築するには、mkpwdict(1M) を参照してください。

DICTIONMINWORDLENGTH

DICTIONMINWORDLENGTH には、DICTIONLIST 内のソースファイルの最小文字数を指定する数値を含めることができます。指定された文字数より短い単語はパスワード辞書から省略されます。

指定できる最小値は 2 (文字) です。デフォルト値は 3 (文字) です。

HISTORY

ユーザーごとに保存しておく旧パスワード履歴の最大数。HISTORY 値をゼロ (0) に設定するか、HISTORY フラグを削除した場合、任意のユーザーが次回パスワードを変更するときに、すべてのユーザーの旧パスワード履歴が破棄されます。デフォルトでは、HISTORY フラグを定義しません。最大値は 26 です。現在、この機能は、files ネームサービス (ローカルの passwd(4)/shadow(4)) に定義されたユーザーアカウントにのみ適用されます。

MAXREPEATS

同じ文字を続けることができる最大数を定義します。MAXREPEATS を設定しないか、ゼロ (0) に設定した場合、デフォルトでは、このチェックは実行されません。

MAXWEEKS

パスワードが有効な最大期間

MINALPHA

パスワードに必要な英字の最小数。MINALPHA を設定しない場合、デフォルトは 2 です。

MINDIFF

古いパスワードと新しいパスワードで異なる必要がある文字の最小数。MINDIFF を設定しない場合、デフォルトは 3 です。

MINDIGIT

パスワードに必要な数字の最小数。MINDIGIT を設定しないか、ゼロ (0) に設定した場合、デフォルトでは、このチェックは実行されません。MINNONALPHA を指定した場合、MINDIGIT は指定できません。

MINLOWER

パスワードに必要な英小文字の最小数。MINLOWER を設定しないか、ゼロ (0) に設定した場合、デフォルトでは、このチェックは実行されません。

MINNONALPHA

パスワードに必要な英字以外の文字 (数字または特殊文字) の最小数。MINNONALPHA が設定されていない場合、デフォルトは 1 です。MINDIGIT または MINSPECIAL も指定されている場合は、MINNONALPHA を指定できません。

MINWEEKS

パスワード変更に最低限必要な期間

MINSPECIAL

パスワードに必要な特殊文字 (英字と数字以外の文字) の最小数。MINSPECIAL を設定しないか、ゼロ (0) に指定した場合、デフォルトでは、このチェックは実行されません。MINNONALPHA を指定した場合、MINSPECIAL は指定できません。

MINUPPER

パスワードに必要な英大文字の最小数。MINUPPER が設定されていないか、またはゼロ (0) である場合、デフォルトはチェックなしです。

NAMECHECK

ログイン名のチェックを有効または無効にします。デフォルトでは、ログイン名チェックは実行されます。NAMECHECK を no (大文字小文字の区別なし) に設定した場合、このチェックは実行されません。

PASSLENGTH

パスワードに最低限必要な文字数

WARNWEEKS

パスワードの有効期間が切れる前の警告期間

WHITESPACE

パスワード内でスペース文字を許可するかどうかを指定します。指定できる値は、YESNO です。WHITESPACE が設定されていないか、YES に設定されている場合、スペース文字は許可されます。

/etc/oshadow

実際のシャドウファイルを更新するために passwd および pwconv によって使用される一時ファイル。

/etc/passwd

パスワードファイル。

/etc/shadow

シャドウパスワードファイル。

/etc/shells

シェルデータベース。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
CSI
有効
インタフェースの安定性
下記を参照。

人間が読める形式の出力は「不確実」です。オプションは「確実」です。

関連項目

at(1), batch(1), finger(1), login(1), cron(1M), domainname(1M), eeprom(1M), id(1M), ldapclient(1M), mkpwdict(1M), pwconv(1M), su(1M), useradd(1M), userdel(1M), usermod(1M), crypt(3C), getpwnam(3C), getspnam(3C), getusershell(3C), pam(3PAM), loginlog(4), nsswitch.conf(4), pam.conf(4), passwd(4), policy.conf(4), shadow(4), shells(4), user_attr(4), attributes(5), environ(5), pam_authtok_check(5), pam_authtok_get(5), pam_authtok_store(5), pam_dhkeys(5), pam_ldap(5), pam_unix_account(5), pam_unix_auth(5), pam_unix_session(5), crypt_unix(5)

yppasswd コマンドは、passwd のラッパーです。yppasswd の使用は推奨されていません。代わりに、passwd –r repository_name を使用してください。

files および ldap リポジトリ内のパスワードを変更すると、失敗したログインのカウントがクリアされます。

パスワードを変更すると、非アクティブ期間の長さのために無効になったアカウントが再度有効になります。

入力端末処理は、キーシーケンスの一部を解釈し、その部分の情報を passwd コマンドに渡さない可能性があります。

パスワードを持っていないアカウント (ステータスコード NP) は、ログインできない可能性があります。login(1)PASSREQ オプションを参照してください。

さまざまなオプションを実行するために必要な承認:

-d     delete password               solaris.passwd.assign
-N     set nologin                   solaris.passwd.assign
       change any passwd             solaris.passwd.assign

-l     lock account                  solaris.account.setpolicy
-u     unlock account                solaris.account.setpolicy
-n     set min field for name        solaris.account.setpolicy
-w     set warn field for name       solaris.account.setpolicy
-x     set max field for name        solaris.account.setpolicy
-f     forces password expiration    solaris.account.setpolicy
-s     display password attributes   solaris.account.setpolicy  
-a     display password attributes   solaris.account.setpolicy  
       for all entries

-e     change login shell            solaris.user.manage
-g     change gecos information      solaris.user.manage
-h     change home directory         solaris.user.manage
       set a newly created account's 
         passwd for the first time   solaris.account.activate

crypt_unix(5) を除くすべてのパスワードハッシュアルゴリズムでは、パスワードの最大長は 255 です。