web-dev-qa-db-ja.com

Raspbianでのユーザーとユーザーグループの一覧表示

驚いたことに、このような単純な質問に出くわした検索はありませんでした。私が欲しいのは、ユーザーとユーザーグループのリストを取得することだけです(2番目のものは実際に何であれ)。

ユーザーアカウントが作成または削除されることについて多くのリソースを見つけましたが、誰もがシステム上のすべてのアカウントを暗記しているようです。そうではないと思います。

それで、それらをどのようにリストし、それらの許可を与え、どのようにグループをリストしますか?

getent コマンドを使用して、システムのユーザー、グループなどをクエリすることもできます。

ユーザー

$ getent passwd | head -5
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

グループ

$ getent group | head -5
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:

/etc/passwdおよび/etc/groupファイルを見るだけではなくgetentを使用する利点は、getentがシステムのNSS-ネームサービススイッチを使用してシステムにクエリを実行することです。これらのような「データベース」を特定のシステムで処理する方法を定義します。

NSS

ほとんどのLinuxシステムのNSSは、ファイル/etc/nsswitch.confを介して制御されます。このファイルは「データベース」を定義し、次にそれらをどのように解決する必要があるかを定義します。

以下では、「データベース」のpasswdとgroupがファイルによって提供されている必要がありますが、LDAP、NIS、またはその他の方法はいくつでも。

# /etc/nsswitch.conf

# Example:
#passwd:    db files nisplus nis
#shadow:    db files nisplus nis
#group:     db files nisplus nis

passwd:     files
shadow:     files
group:      files
#initgroups: files

その他のデータベース

パスワードとグループは2つだけです。getentを介してアクセスできるデータベースはたくさんあります。完全なリストについては、getentのマニュアルページをご覧ください。

getentの使用状況ページからリストを取得することもできます。

$ getent --help
...
Supported databases:
ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups
netgroup networks passwd protocols rpc services shadow
...

参考文献

11
slm

よりわかりやすい方法で表示することもできますが、すべての情報はこれら2つのファイルに含まれています。ユーザーアカウントの完全なリストについては、1行に1つのアカウント:

less /etc/passwd

グループの完全なリストについては、1行に1グループ:

less /etc/group

見る man 5 passwdおよびman 5 groupすべてのフィールドの意味の詳細については。

一方、Raspbianがネットワーク全体のマシン間でユーザーとグループのアカウント情報を共有する目的で熟練した管理者によってカスタム設定されている場合、上記で記述したものは適切ではなく、@ slmのよく書かれたものに従う必要があります助言。

5
John1024
less /etc/passwd | cut -d":" -f1
1
rolandblais