驚いたことに、このような単純な質問に出くわした検索はありませんでした。私が欲しいのは、ユーザーとユーザーグループのリストを取得することだけです(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-ネームサービススイッチを使用してシステムにクエリを実行することです。これらのような「データベース」を特定のシステムで処理する方法を定義します。
ほとんどの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
...
よりわかりやすい方法で表示することもできますが、すべての情報はこれら2つのファイルに含まれています。ユーザーアカウントの完全なリストについては、1行に1つのアカウント:
less /etc/passwd
グループの完全なリストについては、1行に1グループ:
less /etc/group
見る man 5 passwd
およびman 5 group
すべてのフィールドの意味の詳細については。
一方、Raspbianがネットワーク全体のマシン間でユーザーとグループのアカウント情報を共有する目的で熟練した管理者によってカスタム設定されている場合、上記で記述したものは適切ではなく、@ slmのよく書かれたものに従う必要があります助言。
less /etc/passwd | cut -d":" -f1