権限システムを構成および管理するには、管理者はすべてのユーザーのリストを必要とします。ユーザーの作成、ユーザーの削除のコマンドがありますが、Linuxシステムのすべてのユーザーを一覧表示することは重要なタスクです。また、セキュリティ上の理由から、適切な数のユーザーがいることと、一部のユーザーを削除することを忘れていないことを確認する必要があります。
ここLinuxAPTでは、サーバー管理サービスの一環として、お客様が関連するLinuxシステムクエリを実行するのを定期的に支援しています。
これに関連して、Linuxシステムでユーザーを一覧表示する方法を検討します。
/ etc / passwdファイルを使用してすべてのユーザーを一覧表示するには?
ユーザー情報は/etc/passwdファイルに保存されます。これには、システム上のユーザーアカウントごとにユーザー名が記載された1行が含まれています。 lessまたはcatコマンドを使用して、ファイルの内容を確認できます。
$ cat / etc / passwd
出力では、各行に次の情報を含むコロンで区切られた7つのフィールドがあることがわかります。
- ユーザー名。
- 暗号化されたパスワード。xはパスワードがetc/shadowファイルに保存されていることを意味します。
- UID(ユーザーID)。
- GID(ユーザーのグループID)。
- ユーザーのフルネーム。
- ユーザー$HOMEディレクトリ。
- ログインシェルパス。
ユーザー名のみを一覧表示する場合は、awkまたはcutコマンドを使用して、ユーザー名のみを出力できます。
awk -F:'{print $ 1}' / etc / passwd
cut -d:-f1 / etc / passwd
出力は次のようになります:
出力
根
デーモン
置き場
sys
同期
ゲーム
男
lp
郵便物
ニュース
uucp
プロキシー
www-data
..。
..。
geoclue
gdm
gnome-initial-setup
sshd
getentコマンドを使用してすべてのユーザーを一覧表示する方法は?
Getentコマンドは、データベースからエントリを読み取ります。 LDAPデータベースと/etc/passwdファイルの両方からユーザーが一覧表示されます。
すべてのLinuxユーザーのリストを取得するには、次のコマンドを入力します。
$ getent passwd
出力は/etc/passwdファイルの内容と同じになります。 awkまたはcutを使用して、ユーザー名のみを印刷することもできます:
getent passwd | awk -F:'{print $ 1}'
getent passwd |カット-d:-f1
Linuxシステムにユーザーが存在するかどうかを確認する方法は?
これで、ユーザーのリストを取得する方法がわかりました。しかし、ユーザーが現在のシステムに存在するかどうかを確認したい場合はどうでしょうか。 grepコマンドを使用して、grepコマンドを使用せずに確認できます。
たとえば、linuxaptユーザーが存在するかどうかを確認したい場合は、次のようにコマンドを発行する必要があります。
$ getent passwd | grep linuxapt
$ getent passwd linuxapt
出力
linuxapt:x:1001:1001:,,,:/ home / linuxapt:/ bin / bash
ユーザーがシステムに存在する場合は、そのユーザーの詳細が印刷されます。それ以外の場合は、何も印刷されません。
システムに存在するユーザーの総数が必要な場合は、次の方法で取得できます:
$ getent passwd | wc -l </ pre>次の出力としてユーザー数が返されます:
出力
47
システムユーザーと通常のユーザーを区別する方法は?
システムユーザーは、OSのインストール時または新しいパッケージの更新時に作成されます。システムユーザーと通常のユーザーの間にこれ以上の違いはありません。
通常のユーザーとは、rootまたはsudo権限を持つ別のユーザーによって作成されたユーザーです。通常、通常のユーザーは実際のログインシェルとホームディレクトリを持っています。
各ユーザーには、システムユーザーまたは通常のユーザーのいずれかのUID(ユーザーID)があります。通常のユーザーがadduserコマンドを使用してユーザーを追加する場合。ユーザーが追加され、ファイル/etc/login.defsからUID_MINおよびUID_MAXを参照してUIDが自動的に割り当てられます。
以下のコマンドでUID_MINとUID_MAXを確認できます:
$ grep -E'^ UID_MIN | ^ UID_MAX' /etc/login.defs以下のような出力が表示されます:
出力
UID_MIN 1000
UID_MAX 60000上記の出力から、すべての通常のユーザーは1000〜60000の一意のIDを持っている必要があることがわかります。
次に、コマンドを発行して、一意のIDが1000〜60000の通常のユーザーのリストを取得します。
$ getent passwd {1000..60000}出力
linuxapt:x:1000:1000:LinuxAPT 、、、:/ home / linuxapt:/ bin / bash
demouser:x:1001:1001:,,,:/ home / demouser:/ bin / bashユーザー名のみを印刷するには、次のコマンドを入力します:
$ eval getent passwd {$(awk'/^UID_MIN/ {print $ 2}' /etc/login.defs)..$(awk'/^UID_MAX/ {print $ 2}' /etc/login.defs) } |カット-d:-f1出力
linuxapt
デモユーザー
Linuxでグループリストを取得する方法は?
次のコマンドを使用して、Linuxのすべてのグループを一覧表示できます。
$ getent group次のコマンドを使用して、特定のユーザーのすべてのグループを一覧表示できます。
$getentグループ| grep linuxapt
Linux