![“其他”手指(/etc/passwd 中的 GECOS 字段)](https://linux22.com/image/1481833/%E2%80%9C%E5%85%B6%E4%BB%96%E2%80%9D%E6%89%8B%E6%8C%87%EF%BC%88%2Fetc%2Fpasswd%20%E4%B8%AD%E7%9A%84%20GECOS%20%E5%AD%97%E6%AE%B5%EF%BC%89.png)
在文件中/etc/passwd
我们有所谓的GECOS fields
(代表“通用电气综合操作系统”),即:
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
?
答案1
我发现最好的方法是使用,getent
因为它可以与 LDAP/NIS 或非本地用户的其他方法一起使用
getent passwd $UID| awk -F ":" '{print $5}'
答案2
答案3
您只需使用两个嵌套的剪切命令:
- 首先以“:”作为字段分隔符,剪切字段 1 和 5;然后
- 第二行以“ ,”作为字段分隔符,剪切字段1&5-N;