Linuxを管理していると「どのようなユーザが何人いるのか?」その一覧を知りたいという場合があるだろう。
また、現在ログインしているユーザを確認したいという場合もあるはずだ。
このページではLinuxでユーザの一覧と、現在ログインしているユーザの一覧を取得する方法をまとめてご紹介しよう!
Linuxのユーザ一覧とpasswdファイル
Linuxでは一般ユーザはもちろん、デーモン(常時起動プログラム)を稼動させるためのユーザなども存在している。デーモンを稼動させるためのユーザはログインする必要がない。というよりセキュリティーの関係上一般的なログイン処理をしてはいけない。ログイン出来るユーザが全てではないということを覚えておこう。
ユーザ名やその情報は「/etc/passwd」ファイルに記述されている。このファイルは手動で編集しないようにしよう。システムのユーザ情報に対する整合性が失われてしまう可能性があるからだ。
ユーザ情報を変更するときは「usermod」コマンド、パスワードを変更するときは「passwd」コマンドを使用すること。ユーザを追加するときは「useradd」コマンドを使用する。
/etc/passwdファイルをのぞいてみる
実際に「passwd」ファイルをのぞいてみよう
$ cat /etc/passwd
入門者のかたが触れる環境の場合、大概は画面ないにおさまる程の長さだと思うが、もしスクロールされてしまうのならば次の通りページャで閲覧しよう。
$ less /etc/passwd
一行毎にたいして以下のような文字列が記述されているはずだ。
/etc/passwd一部抜粋
ken:x:500:100::/home/ken:/bin/bash
一ずつほどいてゆこう「:」でカラムはくぎられている。
- ken 1とつめのカラムはユーザ名だ。実際にログインするときユーザ名となる
- x パスワードを示すカラムだが現代では「x」一文字であらわされているはずだ。よほど古い環境の場合暗号化されたパスワードが記述されている場合がある。
- 500 ユーザidが記述される。システムがユーザを認識するためのid、Linuxの場合ユーザ名よりこのidなどでユーザを判別することが多々ある。
- 100 グループidが記述される。グループに関しての識別番号が記述されている。ユーザidのグループ版である。
- なにも記述されていないカラム これは任意のコメントである。といってもユーザ作成時に設定するもので手動で編集してはいけない。
- home/<ユーザ名> ユーザのホームディレクトリをさす。ディレクトリが存在しない場合「/」がデフォルトになる、「useradd」などのコマンドは「-m」オプションを使用しないとホームディレクトリを作成しない状態でユーザを作成する。
- /bin/bash ユーザが使用するシェルを設定する。Linuxの場合ログインして、オペレーション可能なユーザはデフォルトで「bash」を指定されることがほとんどだ。Linuxの場合ログインをしないユーザは「/sbin/nologin」がわりあてられるようになっている。
ちなみにpasswdファイルからユーザのみを表示したいときは
$ cut -d: -f1 /etc/passwd
などとするとよい。
現在ログインしているユーザ
サーバとして稼動している場合「今現在ログインしているユーザが誰か?」を知りたいときがあるだろう。その場合「users」コマンドもしくは「who」コマンドを使用するとよい。どちらも現在ログインしているユーザが表示できる
$ who
どのユーザがどういった端末でログインしたかがわかるようになっている。時刻も表示されるようになっている。
$ users
こちらはユーザ名が横並びになって表示される。スペースが区切りとなっている。
まとめ
このページでは、Linuxユーザの一覧とログイン中のユーザ一覧を確認する方法をお伝えした。それほど難しくはなかったはずだ。
本当によく使う項目なので、ぜひ把握をしておこう。