直接ファイルを読む VS getent

直接ファイルを読む VS getent

さまざまなシェルスクリプトでサポートされているデータベースから情報を取得する2つの方法がよくあります。ネームサービススイッチ/etc/group/etc/hosts、またはなどのライブラリ/etc/services。 1つはgetentユーティリティプログラムで、もう1つは他のgrepテキスト処理ツールです。たとえば、

root@fw-test:~# getent passwd root
root:x:0:0:root:/root:/bin/bash
root@fw-test:~# 


root@fw-test:~# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
root@fw-test:~# 

..または:

root@fw-test:~# getent hosts www.blah.com
189.113.174.199 www.blah.com
root@fw-test:~# 

root@fw-test:~# host www.blah.com
www.blah.com has address 189.113.174.199
root@fw-test:~# 

上記の2つの方法のいずれをスクリプトに使用する必要がありますか?私の言葉は、ある解決策が他の解決策よりもエレガントであるか標準的であることを意味しますか?

ベストアンサー1

これはユーザーエクスペリエンスに関連する要因によって大きく異なりますが、getentローカルユーザーだけでなく外部ユーザーも見つけるため、このアプローチを好みます。具体的には、LDAPサーバーで自分の環境のLDAPユーザーを照会し、そのようなサーバーがcat /etc/passwd有効なユーザーを持っているという事実は、私のLDAPサーバーがあることさえ知りません。すべてのユーザーが常にローカルである場合は、getent「10年以内にLDAPサーバーを追加した後に再構築する必要はありません」以外は、実際には何の利点もありません。

おすすめ記事