あるユーザアカウントをロック(ログインできないようにする)したい場合は以下の手順で実現することができます。
この記事では、ロックするユーザアカウントのホームディレクトリ等を削除せずに、ログインができないようにする方法を記述します。
またロックしたユーザをアンロック(ロックの解除)を行う手順も記述します。
以下のコマンドによりユーザアカウントをロックすることができます。
(ログインできなくなります。)
usermod -L ユーザアカウント
Ubuntuの場合は、上記コマンドの前ににsudoをつけ実行してください。
CentOSなどの場合はrootになり上記コマンドを実行してください。
注意
rootアカウントが存在せず、ログインアカウントが1つしか無い場合、以下の手順を試すと1つしかないユーザアカウントがロックされますのでログインができなくなります。
ユーザアカウントのロックを試す場合は、2つ以上のユーザアカウントを作成してください。
実際にUbuntuで試してみました。
$ sudo usermod -L sakura [sudo] password for sakura:
$ su - sakura パスワード: su: 認証失敗但し、rootユーザからロックしたユーザアカウントのsuや以下のようにすれば、ロックしたユーザアカウントにsuすることができます。
$ sudo su - ロックしたユーザアカウントまたは、rootユーザになり以下のコマンドを実行。
# su -
usermodコマンドをmanで確認するとわかります。
以下、man usermodの抜粋です。
USERMOD(8) USERMOD(8) 名前 usermod - ユーザアカウントを修正する <snip> -L ユーザのパスワードをロックする。 これは暗号化されたパスワードの前に '!' を追加し、 実質的にパスワードを無効にする。 このオプションを -p や -U と同時に用いることはできない。 <snip>
上記の通り、パスワードの前に!が追加されログインできなくなります。
(!が先頭にあることによりログインできなくなります)
パスワードが保存されているshadowファイルを確認すると第二フィールドの暗号化されたパスワードの先頭に!が追加されているのが確認できました。
$ sudo cat /etc/shadow | grep sakura sakura:!$6$/iJM5Tj2$EZ<snip>75SJkFsL2/:14849:0:99999:7:::
上記手順で指定したユーザアカウントをロック(ログインできなくるなる)しました。
以下のコマンドによりロックしたユーザアカウントをあんロックします。
usermod -U ユーザアカウント
以下、man usermodの抜粋です。
USERMOD(8) USERMOD(8) 名前 usermod - ユーザアカウントを修正する <snip> -U ユーザのパスワードをアンロックする。 これは暗号化されたパスワードの先頭の '!' を取り除く。 このオプションを -p や -L と同時に用いることはできない。 <snip>
以下、ubuntuで実際にコマンドを実行した結果です。
先頭の!が取り除かれたのが確認できます。
$ sudo usermod -U sakura $ sudo cat /etc/shadow | grep sakura sakura:$6$/iJM5Tj2$EZ<snip>75SJkFsL2/:14849:0:99999:7:::
以上、usermod [-U|-L] ユーザアカウントを利用することにより、ログインのロック/アンロックが可能になります。