この記事では、Linuxでユーザーをリストする方法について学びます。 この他にもさんのその他の技報は、Linuxユーザーの特性です。
Linuxには、デフォルトでシステムで作成されたシステムユーザーという二つのタイプのユーザーがあります。 一方、システム管理者によって作成され、システムにログインして使用できる通常のユーザーがあります。
目次
Linux上のユーザーのリストが含まれているファイルは何ですか?,
を開始する前に、上場ユーザーなのかを知っておく必要がありまがこれらのユーザーに保存されたLinux?
ユーザーは、passwdファイルと呼ばれるシステム上のテキストファイルに格納されます。 このファイルは/etcディレクトリにあります。
ファイルは次のパスにあります。
$ /etc/passwd
このファイルでは、システム内のユーザーに関するすべての情報を見つけることができます。
すべてのユーザーを一覧表示
ユーザーを一覧表示することは、ユーザーを管理する最初のステップです。 こうすれば、私たちは彼らが何人であり、誰であるかを知るでしょう。 Linuxでは、ほとんどすべてがさまざまな方法で行うことができ、これも例外ではありません。,
すべてのユーザーをリストするには、catコマンドを使用できます。
$ cat /etc/passwd
画像でわかるように、ユーザーに関するすべての情報があります。
1-最初のフィールドには、ユーザー名が表示されます。
2-第二のフィールド(x文字)は、暗号化されたパスワードの表現です。 暗号化されたパスワードは/etc/shadowファイルに保存されます。
3-UIDまたはユーザー ID。
4-次のフィールドは、ユーザーのプライマリグループを参照します。
5-次に、アドレス、電子メールなどのユーザーID情報が表示されます。,
6-この後、ユーザーのホームディレクトリが表示されます。
7-最後のフィールドは、そのユーザーが使用するシェルです。
ただし、情報は非常に便利ですが、基本的な方法でユーザーの名前のみをリストしたい場合は、次のコマンドを使用できます。
$ cut -d: -f1 /etc/passwd
これで、ファイルの最初のフィールドのみを印刷することによって、名前のみが得られます。
List&ユーザーを名前で並べ替える
上記のコマンドは、Linux上のユーザーを一覧表示する目的で使用します。 その一方で、上場のユーザーのアルファベット順?,
これを行うには、前のコマンドを使用しますが、sortコマンドを追加します。
したがって、コマンドは次のようになります。
$ cut -d: -f1 /etc/passwd | sort
画像でわかるように、ユーザーはソートされています。
Linuxはパスワードのないユーザーを一覧表示します
パスワードのないユーザーを知り、適切なアクションを取ることが重要です。 パスワードを持っていないユーザーをリストするには、次のコマンドを使用します。
$ sudo getent shadow | grep -Po '^*(?=:.?:)'
使用される正規表現は、パスワードなしですべてのユーザーをリストします。,
ディスク使用量によるユーザーのリスト
大きなディレクトリがあり、どのユーザーがそれをフラッディングしているかを知りたい場合は、duコマンド
これにより、これらのユーザーのどれがディスク領域を悪用しているかを検出できます。
そのためには、次のコマンドを使用するだけで十分です。
$ sudo du -smc /home/* | sort -n
このようにして、/homeディレクトリのディスク使用量によってユーザーが順
出力を数値でソートするために、sortコマンドに-nを使用しました。,
現在ログインしているユーザーをリストします
現在ログインしているユーザーをリストするには、いくつかの方法があります。 最初の方法は、ユーザーコマンドを使用できます:
$ users
これは、システムで開いているセッションを持つユーザーを一覧表示します。
しかし、この情報は少し基本的ですが、より詳細な情報を提供する別のコマンドがあります。 コマンドは単にwです。,
$ w
このコマンドを使用すると、セッションが開始された正確な時刻や、利用可能な端末セッションなど、より多くの情報を得ることができます。
最後に、whoというコマンドがあります。 これはUnixファミリ全体で利用可能です。 したがって、FreeBSDのような他のシステムで使用できます。
$ who
whoコマンドでは、現在ログインしているユーザーに関する情報もいくつかあります。 もちろん、オプション-aを追加して、すべての詳細を表示することもできます。,
$ who -a
このようにして、ログインしたユーザーに関するすべてを知っています。
最近システムにログインしたユーザーのLinuxリスト
現在ログインしているユーザーを取得する方法を見ましたが、ユーザーのログイン履歴をリスト,
最後のコマンドを使用して、発生したログインに関する詳細情報を取得できます。
$ last
または特定のユーザーのログイン
$ last
例えば、
$ last angelo
これらは、ユーザーのログインアクティビティであり、いつ開始され、どのくらいの時間がかかったかです。
特定の日付または時刻にユーザーのログインをリストする
特定の日付または時刻にユーザーのログインをリストするのはどうですか?, これを実現するには、最後のコマンドを使用しますが、-tパラメーター:
$ last -t YYMMDDHHMMSS
例えば:
$ last -t 20190926110509
そして今、あなたがしなければならないのは、正確な日付を選択するだけです&その時。
グループ内のすべてのユーザーをリストする
Linuxでは、グループのメンバーをリストする二つの方法があります。
$ cat /etc/group | grep likegeeks
このコマンドは、likegeeksグループのユーザーをリストします。,
他の方法は、Debianベースのディストリビューションのmembersコマンドのようなコマンドを使うことです。 ただし、Linuxディストリビューショ,
Ubuntu/Linux Mint19にインストールするには、APTを使用します。
$ sudo apt install members
またはCentOSの場合:
$ sudo dnf install members
インストールしたら、コマンドを実行して、ユーザーをリストするグループの名前を次に実行できます。
$ members
たとえば、
$ members avahi
このようにして、debianベースのディストリビューション内のグループのユーザをリストすることができます。 CentOSのようなRedHatベースのディストリビューションはどうです,
次のコマンドを使用できます。
$ getent group likegeeks
UIDを持つユーザーのリスト
Unixシステムでは、各ユーザーにはユーザー識別子またはIDがあります。 で管理口座内の営業システム。一般に、0から1000までのUidはシステムユーザー向けです。 その後、通常のユーザーのために。 常にUnixシステムでは、UIDゼロはrootユーザーに属します(UIDがゼロの複数のユーザーを持つことができます)。
それでは、Awkを使用してそれぞれのUIDを持つユーザーをリストします。,
タスクを実行するコマンドは次のとおりです。
$ awk -F: '{printf "%s:%s\n",$1,$3}' /etc/passwd
ご覧のとおり、各ユーザーはUIDを持ちます。
list rootユーザー
LinuxのようなUnixライクなシステムでは、通常、rootユーザーは一つしかありません。 多くがある場合は、それらをリストする方法は?
これを行うには、次のコマンドを使用できます。
$ grep 'x:0:' /etc/passwd
ここでは、UIDがゼロ(rootユーザー)のユーザーを取得するためにファイルをフィルタ,
/etc/groupファイルをチェックする別の方法:
$ grep root /etc/group
ここでは、/etc/groupファイルからグループrootのユーザーを取得します。
また、/etc/sudoersファイルをチェックすることで、ユーザーがrootとしてコマンドを実行できるかどうかを確認できます。
$ cat /etc/sudoers
ユーザーの総数を取得
Linuxのユーザーの総数を取得するには、次のようにwcコマンドを使用して/etc/passwdファイル内の行を数えることができます。
$ cut -d: -f1 /etc/passwd | wc -l
グレート! 43人のユーザー。, を含むシステムは、正規ユーザー 通常のユーザーのみの数を取得するのはどうですか?
簡単に! 上記から、通常のユーザーが1000以上のUIDを持っていることがわかっているので、Awkを使用してそれらを取得できます。
$ awk -F: '$3 >= 1000 {print $1}' /etc/passwd
Cool!
list sudo users
Linuxシステムにはsudoというユーティリティがあり、通常はrootユーザーである別のユーザーと同じようにコマンドを実行できます。
これは専門的な環境では注意して処理する必要があります。,
また、sudoコマンドを実行できるユーザーを知ることは非常に重要です。 このためには、sudoグループに属するユーザーをリストするだけで十分です。
$ members sudo
このグループのユーザーは、スーパーユーザーとしてコマンドを実行できます。
SSHアクセス権を持つユーザーの一覧
SSHを使用すると、ネットワーク経由でリモートコンピューターにアクセスできます。 それは非常に安全であり、Telnetの代替として生まれました。
デフォルトでは、すべての通常のユーザーがログインしてSSHを使用できます。, これを制限したい場合は、SSH設定ファイル(/etc/ssh/ssh_config)を使用し、次のディレクティブを追加できます。
AllowUsers user1 user2 user3
また、AllowGroupsディレクティブのみを使用してユーザーを許可する代わりに、グループを許可することができます。
AllowGroups group1 group2 group3
これらのディレクティブは、サービスにアクセスできるユーザーを定義します。 SSHサービスの再起動を忘れないでください。
ファイルまたはディレクトリに対する権限を持つユーザーを一覧表示します
ファイルにアクセスまたは変更する権限を複数のユーザーに与えることができます&ディレクトリには二つの方法があります。,
最初の方法は、ファイルまたはディレクトリのグループにユーザーを追加することです。
このようにして、上記のようにmembersユーティリティを使用してグループメンバーを一覧表示できます。しかし、このユーザーにこの特定のファイルのみ(すべてのグループ権限ではない)にアクセスできるようにしたい場合はどうすればよいでしょうか?
ここでは、setfaclコマンドを使用してこのファイルのACLを設定できます。
$ setfacl -m u:newuser:rwx myfile
ここでは、newserと呼ばれるユーザーにmyfileと呼ばれるファイルの権限を与えます読み取り&書き込み&実行します。,
これで、ファイルにアクセスしたり、所有者によって変更することができ、ユーザーはnewuserと呼ばれます。 では、それらをリストする方法は?
次のようなgetfaclコマンドを使用してリストできます。
$ getfacl myfile
このコマンドは、対応する権限を持つファイルの権限を持つすべてのユーザーをリストします。
List locked(disabled)users
Linuxでは、セキュリティ対策として、ユーザーをロックできます。 これは、ユーザーが間違ったことをしている疑いがあり、ユーザーを完全に削除して調査のために彼をロックしたくない場合の予防策として使用します。,
ユーザーをロックするには、次のコマンドを使用できます。
$ usermod -L myuser
myuserという名前のユーザーは、システムにログインまたは使用できなくなります。/p>
システムのすべてのロックされたユーザーを一覧表示するには、次のコマンドを使用します。
$ cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }' | grep locked
これにより、システムユーザーを含むすべてのロックされたユーザーが表示されます。 う場正規ユーザーのみですか?
上で見たように、Awkを使用すると、次のようにロックされた通常のユーザーを取得できます。
$ awk -F: '$3 >= 1000 {print $1}' /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }' | grep locked
非常に簡単です!,
リモートユーザー(LDAP)のリスト
さて、すべてのシステムユーザー(ローカルユーザー)をリストできますが、リモートユーザーまたはLDAPユーザーはどうですか? さて、ldapsearchのようなツールを使用することはできますが、他の方法はありますか?
幸いにもはい! ローカル&リモートユーザーは、getent
$ getent passwd
このコマンドは、ローカルシステムユーザーとLDAPまたはNISユーザー、または他のネットワークユーザーの両方をリストします。
このコマンドの結果を上記のコマンドのいずれかに同じ方法でパイプすることができます。,
また、getentコマンドは次のようなグループアカウントを一覧表示できます。
$ getent group
コマンドのmanページをチェックして、コマンドが検索できる他のデータベースを知ることができます。
結論
Linuxシステムでのユーザーのリストは楽しかったです! これ以外にも、ユーザーに関するヒントと、さまざまな方法でそれらを管理する方法を学びました。
最後に、この知識により、システムのユーザーのより良い管理が可能になります。
私はあなたがチュートリアルが役に立つことを願っていま 戻ってくるんだ,
LikeGeeksの創設者です。 私は2010年以来Linuxシステム管理者として働いています。 私は当社で責任を確保、およびトラブルシューティングLinuxサーバを複数のクライアントの世界です。 私は書面でシェルおよびPythonスクリプト自動化しています。