getent(1) 名前サービス切り替えライブラリからエントリーを取得する

書式

getent database [key ...]

説明

getent コマンドは、 名前サービス切り替えライブラリでサポートされているデータベースのエントリーを表示する。 名前サービス切り替えライブラリの設定は /etc/nsswitch.conf で行う。 一つ以上の key 引き数が指定されると、 指定されたキーにマッチするエントリーだけが表示される。 key が指定されなかった場合、 すべてのエントリーが表示される (データベースで列挙 (enumeration) がサポートされていない場合を除く)。

database には GNU C ライブラリでサポートされているデータベースのいずれかを指定できる。 以下にそのリストを示す。

ahosts
key が指定されなかった場合、 sethostent(3), gethostent(3), endhostent(3) を使用して hosts データベースを列挙する。 これは hosts を使うのと全く同じである。 key 引き数が一つ以上指定された場合は、 それぞれの key についてアドレスファミリー AF_UNSPECgetaddrinfo(3) を呼び出し、 返された各々のソケットアドレス構造体を列挙する。
ahostsv4
ahosts を同じだが、 アドレスファミリーとして AF_INET を使用する。
ahostsv6
ahosts を同じだが、 アドレスファミリーとして AF_INET6 を使用する。 この場合の getaddrinfo(3) の呼び出しでは AI_V4MAPPED も指定される。
aliases
key が指定されなかった場合、 setaliasent(3), getaliasent(3), endaliasent(3) を使用して aliases データベースを列挙する。 key 引き数が一つ以上指定された場合は、 それぞれの key についてgetaliasbyname(3) を呼び出し、 結果を表示する。
ethers
key 引き数が一つ以上指定された場合、 結果が得られるまで、 それぞれの key について ether_aton(3) と ether_hostton(3) を順に呼び出し、 結果を表示する。 ethers では列挙はサポートされていない。 したがって、 key は指定しなければならない。
group
key が指定されなかった場合、 setgrent(3), getgrent(3), endgrent(3) を使用して group データベースを列挙する。 key 引き数が一つ以上指定された場合は、 それぞれの key について、 数値であれば getgrgid(3) を、 数値以外であれば getgrnam(3) を呼び出し、 結果を表示する。
gshadow
key が指定されなかった場合、 setsgent(3), getsgent(3), endsgent(3) を使用して gshadow データベースを列挙する。 key 引き数が一つ以上指定された場合は、 それぞれの key について getsgnam(3) を呼び出し、 結果を表示する。
hosts
key が指定されなかった場合、 sethostent(3), gethostent(3), endhostent(3) を使用して hosts データベースを列挙する。 key 引き数が一つ以上指定された場合は、 それぞれの key について gethostbyaddr(3) か gethostbyname2(3) を呼び出し、 結果を表示する。 gethostbyaddr(3) か gethostbyname2(3) のどちらを呼び出すかは、inet_pton(3) の呼び出しで、 key が IPv6 や IPv4 アドレスか、 そうでないか、 判定され、その結果によって決まる。
initgroups
key 引き数が一つ以上指定された場合、 結果が得られるまで、 それぞれの key について getgrouplist(3) を呼び出し、 結果を表示する。 initgroups では列挙はサポートされていない。 したがって、 key は指定しなければならない。
netgroup
1 個の key を指定すると、 その keysetnetgrent(3) に渡し、 getnetgrent(3) を使って結果の 3 つ組の文字列 (hostname, username, domainname) を表示する。 代わりに、 3 個の key を指定することもできる。 3 個の keyhostname, username, domainname と解釈され、 innetgr(3) を使って対応する netgroup があるか照合される。 netgroup では列挙はサポートされていない。 したがって、 1 個か 3 個のいずれかの key を指定しなければならない。
networks
key が指定されなかった場合、 setnetent(3), getnetent(3), endnetent(3) を使用して networks データベースを列挙する。 key 引き数が一つ以上指定された場合は、 それぞれの key について、 数値であれば getnetbyaddr(3) を、 数値以外であれば getnetbyname(3) を呼び出し、 結果を表示する。
passwd
key が指定されなかった場合、 setpwent(3), getpwent(3), endpwent(3) を使用して passwd データベースを列挙する。 key 引き数が一つ以上指定された場合は、 それぞれの key について、 数値であれば getpwgid(3) を、 数値以外であれば getpwnam(3) を呼び出し、 結果を表示する。
protocols
key が指定されなかった場合、 setprotoent(3), getprotoent(3), endprotoent(3) を使用して protocols データベースを列挙する。 key 引き数が一つ以上指定された場合は、 それぞれの key について、 数値であれば getprotobynumber(3) を、 数値以外であれば getprotobyname(3) を呼び出し、 結果を表示する。
rpc
key が指定されなかった場合、 setrpcent(3), getrpcent(3), endrpcent(3) を使用して rpc データベースを列挙する。 key 引き数が一つ以上指定された場合は、 それぞれの key について、 数値であれば getrpcbynumber(3) を、 数値以外であれば getrpcbyname(3) を呼び出し、 結果を表示する。
services
key が指定されなかった場合、 setservent(3), getservent(3), endservent(3) を使用して services データベースを列挙する。 key 引き数が一つ以上指定された場合は、 それぞれの key について、 数値であれば getservbynumber(3) を、 数値以外であれば getservbyname(3) を呼び出し、 結果を表示する。
shadow
key が指定されなかった場合、 setspent(3), getspent(3), endspent(3) を使用して shadow データベースを列挙する。 key 引き数が一つ以上指定された場合は、 それぞれの key について getspnam(3) を呼び出し、 結果を表示する。

終了ステータス

getent は以下のいずれかの終了ステータスを返す。
0
コマンドが正常に完了した。
1
引き数が不足しているか、 知らない database が指定された。
2
指定された keydatabase で見つからなかった。
3
この database では列挙はサポートされていない。

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。