只是对以下情况感到好奇
当adduser
命令执行时如下:
sudo adduser optimusprime
Adding user `optimusprime' ...
Adding new group `optimusprime' (1015) ...
Adding new user `optimusprime' (1013) with group `optimusprime' ...
Creating home directory `/home/optimusprime' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for optimusprime
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
请注意,有 5 个可选字段可用于写入数据。如果执行命令时默认将其保留为空cat /etc/passwd
,则该用户的记录将显示如下:
optimusprime:x:1013:1015:,,,:/home/optimusprime:/bin/bash
观察,,,
GECOS 部分。它表示 4 个字段 asA,B,C,D
而不是 5 个字段 as A,B,C,D,E
。为什么它们之间存在这种差异或不匹配?说实话我预料到了
optimusprime:x:1013:1015:,,,,:/home/optimusprime:/bin/bash
adduser
它也代表可通过该命令使用的 5 个字段。
如果使用命令usermod
如下:
sudo usermod -c "A,B,C,D,E" optimusprime
用户显示为:
optimusprime:x:1013:1015:A,B,C,D,E:/home/optimusprime:/bin/bash
我知道甚至可以通过usermod
命令添加更多字段,如下所示:
sudo usermod -c "A,B,C,D,E,F" optimusprime
sudo usermod -c "A,B,C,D,E,F,G" optimusprime
因此这些命令的执行分别体现如下
optimusprime:x:1013:1015:A,B,C,D,E,F:/home/optimusprime:/bin/bash
optimusprime:x:1013:1015:A,B,C,D,E,F,G:/home/optimusprime:/bin/bash
乍一看并不清楚 GECOS 至少是基于 4 个字段还是 5 个字段。