ファイル/etc/passwd
には、いわゆるGECOS fields
( "General Electric Comprehensive Operating System"の略)があります。
username:password:userid:groupid:gecos:home-dir:Shell
ここで、GECOS
は次のように分割されます。
:FullName,RoomAddress,WorkPhone,HomePhone,Others:
そして、Others
は、必要な数のコンマで分割されます。
:FullName,RoomAddress,WorkPhone,HomePhone,Other1,Other2,Other3:
man chfn
ページで読むことができます:
他のフィールドは、他のアプリケーションで使用されるアカウンティング情報を格納するために使用されます。
さて、アプリケーション開発者(私はC language
、system calls
および/またはbash script
に興味があります)にとって、これはこの情報を取得するための最良の方法ですか?
そして、Bash
環境だけを考えると、finger
コマンドがothers
フィールドを表示できない場合(または少なくとも方法がわかりません)、他のコマンドにはどのようなものがありますか? chfn
は表示されるだけでなく、変更できることを知っています。 stdout
に出力するだけの場合はどうなりますか?
私が見つけた最良の方法はgetent
を使用することです。これはLDAP/NISまたは非ローカルユーザーの他の方法で動作するためです。
getent passwd $UID| awk -F ":" '{print $5}'