パスワードの設定
次にユーザのパスワードを設定しましょう。パスワードを設定したり変更したりするコマンドはpasswd
です。
一般ユーザでログインしている場合には、自身のパスワードをpasswd
コマンドで変更できます。rootユーザでログインしている場合は、全ユーザのパスワードを変更できます。
それではrootユーザでuserXユーザのパスワードを設定してみましょう。次の例では、userXユーザのパスワードを設定しています。
# passwd userX Changing password for user userX. New UNIX password: BAD PASSWORD: it is too short Retype new UNIX password: passwd: all authentication tokens updated successfully.
「New UNIX password:」の行でパスワードを入力し、[Enter]キーを押します。このとき、入力した文字は画面に表示されないことに注意してください。パスワードが短かったり、一般的な単語だったりすると警告が表示されます。上記の例では「BAD PASSWORD: it is too short」と表示されています。
こうした警告が出たときにはもっと複雑なパスワードにすることが望ましいのですが、今回は再度同じパスワードを「Retype new UNIX password:」の行で入力します。
1回目と2回目のパスワードが同じであれば設定が成功し、「passwd: all authentication tokens updated successfully.」と表示されます。
それでは、ユーザをuserXに切り替えてみましょう。ユーザを切り替える際のコマンドは「su
」コマンドです。suは「substitute user」という意味です。
# su - userX [userX@localhost ~]$
上記でuserXに切り替わりました。「@」マークの前がユーザ名なので、「userX」に切り替わったことが分かります。一番右側の記号も、rootユーザの場合は「#
」、一般ユーザの場合は「$
」というように表示が切り替わります。
そういえば、せっかくパスワードを変更したのに、パスワードの入力を求められませんでしたね。このように、rootから一般ユーザへ切り替わるときにはパスワードは求められません。一般ユーザから別の一般ユーザあるいはrootユーザに切り替わる際には、パスワード入力が必要になります。
ハイフンの有無で異なるsuコマンドの動作
ユーザを切り替えると、そのタイミングでシェルが新たに1つ立ち上がります。例えば、「root」→「userX」→「root」とユーザを切り替えていった場合、最初の「root」のシェルと最後の「root」のシェルは別物です。注意してください。exit
コマンドを実行して新しいシェルを閉じると、元のシェルに戻れます。
また、su
コマンドでは「-
」(ハイフン)の使い方に注意が必要です。例えば、「userX」から「root」へユーザを切り替える場合には、
$ su -
と
$ su
という2つの方法があります(切り替え後のユーザを指定しないとrootに切り替わります)。ハイフンの有無で変わってくるのは、切り替え後に環境の再設定をするか否かです。
ハイフンを付けると、切り替え後のユーザの環境をそのユーザで再設定し、ハイフンを付けないと環境をそのまま引き継ぎます。分かりやすいのは、ハイフンが付けた場合と付けない場合での切り替え後のディレクトリの位置です。ハイフンを付けた場合には、切り替え後のユーザのホームディレクトリがカレントディレクトリになりますが、ハイフンを付けないとカレントディレクトリは切り替え前から変わりません。
パスワードの有効期限の設定
さて、パスワードの設定が完了しましたが、このパスワードやユーザはいつでも変更したりいつまでも使えたりするわけではありません。有効期限があるのです。
パスワードの有効期限設定をchage
コマンドを見てみましょう(chageはchange ageの意味)。まず、指定したユーザのパスワードの設定状況を確認します。確認するときには-l
オプションを使います。
# chage -l userX Last password change : 1月 19, 2016 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7
様々な項目がありますね。各項目の意味は下表のとおりです。
項目 | 意味 |
---|---|
Last password change | パスワードの最終更新日時 |
Password expires | パスワードの有効期限 |
Password inactive | パスワード無効日付 |
Account expires | アカウント期限切れ日付 |
Minimum number of days between password change | 最小パスワード変更不可能日数 |
Maximum number of days between password change | 最大パスワード変更可能日数 |
Number of days of warning before password expires | パスワード期限切れ警告日数 |
chage
コマンドでは次のオプションを使って各項目に値を設定します。
オプション | 設定内容 |
---|---|
-d | パスワードの最終更新日時 |
-E | アカウント期限切れ日付 |
-m | 最小パスワード変更不可能日数 |
-M | 最大パスワード変更可能日数 |
-W | パスワード期限切れ警告日数 |
-I | パスワード期限切日付からパスワード無効(inactive)になるまでの日数 |
ただし、一度に指定するのは大変です。「# chage userX
」とオプションなしで実行すると、対話的に項目に値を設定できますから、1つ1つ設定していくとよいでしょう。
これでパスワードの設定ができるようになりました。