現在、さまざまなオペレーティングシステムで複数のユーザーを使用できます。各ユーザーには設定とカスタム構成があり、管理者とオペレーターが同じシステムで共同作業を簡単に行えるようになっています。
一方、Linuxは、複数のユーザーが独立した方法でシステム上で同時に作業できるため、この問題に非常に強いです。 1人のユーザーが、システムで作業するために、さまざまな場所からでも複数のセッションを開くことができるようにすることもできます。
Linuxでユーザーを処理するためのヒントとコツをいくつか紹介します。
Linux上のすべてのユーザーを一覧表示
Linuxでsudoユーザーを作成するとします。おそらく、最初に知っておくべきことは、私のシステムにどのユーザーがいるかを知る方法です。 Linuxでユーザーのリストを取得する方法はいくつかあります。
1。より少ない/etc/ passwd
を使用してLinuxのユーザーを表示するこのコマンドにより、シスオペはシステムにローカルに保存されているユーザーを一覧表示できます。次のように構造化された方法でリストが表示されます:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
johndoe:x:1000:1000:John Doe,,,:/home/helder:/bin/bash
davmail:x:127:65534::/var/lib/davmail:/usr/sbin/nologin
statd:x:128:65534::/var/lib/nfs:/usr/sbin/nologin
/etc/passwd (END)
上記の出力の構造は次のようになります。
- ユーザー名
- 暗号化されたパスワード(
x
パスワードが保存されていることを表します) - ユーザーID番号(UID)
- ユーザーのグループID番号(GID)
- フルネーム
- ユーザーのホームディレクトリ
- ユーザーのログインシェル(デフォルトはbashシェル)
なぜこれほど多くのユーザーがいるのですか? 「本物」はどれですか?
このリストには、すべてのシステムユーザーもリストされているため、予想よりもはるかに多くのユーザーが表示されます。
これで、通常のユーザーとシステムユーザーを区別したい場合は、ユーザーID(UID)番号を参照できます。
通常、通常のユーザーのUIDは1000以上です。これにより、UID> =1000のユーザーが通常のユーザーであり、UID<1000のユーザーがシステムユーザーであるというヒントが得られます。
また、一部のユーザーの行末に「nologin」があることに気付くでしょう。これは、これらのユーザーがシステムにログインできないことを意味します。これらのユーザーは、疑似ユーザーとも呼ばれます。
2。 getentpasswdを使用してユーザーを表示する
このコマンドは「less/etc / passwd」と同様の出力を提供しますが、これは実際にはGNU Name Service Switch機能構成ファイル(/etc/nsswitch.confにあります)を照会します。
このconfにはpasswdが含まれているため、非常によく似た表示になりますが、認証にLDAPを使用する場合は、それも含まれます。
3。 compgenを使用してLinuxユーザーを一覧表示する
追加情報なしですべてのユーザー名を一覧表示する場合は、 -uを指定してcompgenコマンドを使用できます。 オプション。
compgen -u
出力は次のようになります:
compgen -u
root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
proxy
www-data
backup
list
irc
gnats
nobody
systemd-network
systemd-resolve
syslog
messagebus
_apt
uuidd
avahi-autoipd
usbmux
dnsmasq
rtkit
cups-pk-helper
speech-dispatcher
whoopsie
kernoops
saned
pulse
avahi
colord
hplip
geoclue
gnome-initial-setup
gdm
abhishek
ヒント:compgenコマンドを-cオプションとともに使用して、使用可能なすべてのコマンドを一覧表示できます。これは、Linuxシステムの管理者ではなく、sudoアクセス権がない場合に役立ちます。
Linuxでユーザーを一覧表示するためのヒント
Linuxでユーザーを表示する3つの方法を見てきました。ユーザーリストを処理する際に役立つヒントをいくつか紹介します。
そのためのcompgenコマンドはすでにありますが、常に覚えておく必要はありません。
システム内のユーザー名のリストのみを取得したい場合は、awkコマンドまたはcutコマンドを使用して、前に見た他の2つのコマンドの出力をフィルタリングできます。
cut -d: -f1 /etc/passwd
または
getent passwd | awk -F: '{ print $1}'
これらのいずれかを使用すると、ユーザーのフィルター処理されたリストが表示され、ユーザー名である最初の列のみが表示されます:
root
daemon
bin
sys
sync
games
man
lp
mail
news
johndoe
davmail
statd
これは、特定のユーザー名がシステムにすでに存在するかどうかを知りたい場合に役立つことがあります。
getent passwd | grep johndoe
これが出力です:
johndoe:x:1000:1000:John Doe,,,:/home/johndoe:/bin/bash
Linuxシステムに現在ログインしているユーザーを知りたい場合は、単純なwhoコマンドを使用する必要があります。これにより、システムへのアクティブなセッションで現在のユーザー名がすぐに一覧表示されます
[email protected]:~$ who
johndoe :0 2019-01-28 21:35 (:0)
harrysmith pts/0 2019-02-01 09:51 (192.168.1.1)
stevejones pts/1 2019-02-02 09:51 (192.168.1.173)
この場合、リストには、接続されているユーザー名のリストだけでなく、接続されたときと接続された場所からの接続方法も表示されます。
最初の列には、ユーザー名が表示されます。
2番目の列は、接続のタイプを示します。Xが数字である「:X」で表されている場合は、グラフィカルユーザーインターフェイス(GUI)またはGnome、XDEなどのデスクトップセッションを使用していることを意味します。; Xが数字である「pts/X」と表示されている場合は、SSHプロトコル(コマンドライン)を介して行われた接続であることを意味します。
3番目の列は、このセッションがサーバーに接続されてから(日付と時刻)を示します。 4番目の最後の列には、接続された場所が表示されます。リモートの場合は、接続が行われた場所のIPが表示されます(GUIなど)ローカルの場合は、「(:X)」が表示されます。ここで、Xはこの場合のセッションであり、その行の2番目の列の番号と一致します。
まとめ
ご覧のとおり、Linuxでユーザーを一覧表示することはまったく難しくありません。これは、すべての情報を出力する単純なコマンドで構成されています。実行したいことや、その情報の取得は、システムで確認したい内容に応じてフィルタリングする必要があります。
たとえば、Linuxのグループ内のユーザーを一覧表示する場合は、それも実行できます。関連トピックでは、Linuxコマンドラインでのユーザーの変更についても読むことができます。
このチュートリアルが気に入っていただけたでしょうか。ご質問やご提案がございましたら、コメント欄でお知らせください。