为什么当我发出如下命令时:
awk -F: -v U="$LOGNAME" '$1==U{print $5}' /etc/passwd
或者
grep $USER /etc/passwd | awk 'BEGIN { FS=":" } { print $5 }'
显示Diogo Saraiva,,,
而不是Diogo Saraiva
?
当我安装 Ubuntu 14.04 时,我写了Diogo Saraiva
,而不是Diogo Saraiva,,,
在全名字段中......
结果cat /etc/passwd | grep diogosaraiva
:
diogosaraiva:x:1000:1000:Diogo Saraiva,,,:/home/diogosaraiva:/bin/bash
我可以改变那条线吗
diogosaraiva:x:1000:1000:Diogo Saraiva:/home/diogosaraiva:/bin/bash
没有任何问题?
我的用户不是唯一的问题。
在 /etc/passwd 文件中:
...
diogosaraiva:x:1000:1000:Diogo Saraiva,,,:/home/diogosaraiva:/bin/bash
sshd:x:116:65534::/var/run/sshd:/usr/sbin/nologin
mysql:x:117:125:MySQL Server,,,:/nonexistent:/bin/false
sysop:x:1001:1001::/home/sysop:/bin/bash
dovecot:x:118:126:Dovecot mail server,,,:/usr/lib/dovecot:/bin/false
dovenull:x:119:127:Dovecot login user,,,:/nonexistent:/bin/false
postfix:x:120:128::/var/spool/postfix:/bin/false
vmail:x:5000:5000::/var/mail:
...
第五个字段
/etc/passwd
称为GECOS 字段,保留用于保存用户名和评论。您看到的条目完全取决于您如何使用adduser
命令添加用户。我将通过仅显示以下两个示例来给出您的答案
adduser
:第一种情况: 只
Full Name
给出了,没有其他信息:正如您在第 5 个字段中看到的,我没有提供任何输入的评论保留为空白,并用逗号
,
分隔。第二种情况:所有信息都已给出:
如您所见,第 5 个字段的所有部分现在都填充了作为输入给出的逗号分隔值。
更改值:如果您想将注释字段的值更改为其他值,您可以使用
usermod
带有-c
(--comment
) 选项的命令:或者如@muru 在评论中建议的更好的方法,使用
chfn
. 如果您以用户身份登录foobar
(在此示例中),则您可以使用 justchfn
或 root 用户sudo chfn foobar
。它将提示您再次输入值,您还可以使用适当的选项更改任何个人值chfn
。查看man chfn
详情。