一、用户信息文件 : /etc/passwd
首先我们可以使用命令man 5 passwd查看以下 passwd 文件的格式
我们看出 passwd 文件的格式是由七个字段组成,每个字段通过冒号分隔,并且每一行代表一个用户。下面我们将通过我个人的passwd文件作为模板,详细介绍每一个字段的含义。
第一字段 :用户名称(account)
这个字段没什么可说的,就是用户个人的用户名,不过,需要注意的是用户在起名时要遵守相应规范。
第二字段 :密码标识(password)
该字段若是 x ,则代表这个用户设有密码。x 不能省略,如果省略,系统在登录时就不会去 /etc/shadow 中搜索真正的密码,从而认为这个用户没有密码,于是直接登录,很不安全。
真正的密码并不存在于 passwd 文件,而是保存在/etc/shadow中,这里保存的只是一个密码标识。
第三字段 :UID
0 :表示该账户是超级用户
1~499 : 表示该账户是系统用户(伪用户)。专门用来为系统的启动服务或启动命令服务,一旦删除这些伪用户,系统会崩溃。
这些用户不能登录,其原因在于最后一个字段的 /sbin/nologin ,我们之后再谈。
500及以上 : 普通用户
当我们想把一个普通用户变为超级用户,只需把该用户的这个字段改为 0 ,这样,该用户便拥有了超级用户的权限。
注意 : 改变的只是该用户的权限,其家目录还是原来的位置。
第四字段 : GID(用户初始组ID)
初始组:指用户一登录就立刻拥有这个用户组的相关权限,每个用户都必须有一个初始组,并且初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组。
附加组: 指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个
在 passwd 该字段下看到的 GID 是这个用户的初始组 GID,那么这个组到底指的是哪一个组呢?这时就需要匹配 /etc/group 文件,才能看到。我们不建议更改初始组,如果需要把用户添加到其他组中,请使用附加组。
第五字段 : 用户说明
该字段只是对本用户的一个备注说明,用户可以把一些重要信息保存在这里,方便日后的查看。
第六字段 : 家目录
普通户 : /home/用户名/
管理员 : /root/
第七字段 :登录之后的 shell
shell :命令解释器。我们需要通过 shell 才能与系统内核进行交流,shell有很多种,Linux 中的默认 shell 是 bash。
我们发现所有伪用户在这个字段是 /sbin/nologin , 我们知道 log in 是登录的意思,那么no log in就是禁止登陆,所以,所有的伪用户才无法登录。
也就是说,如果我把某一普通用户的这一字段由 /bin/bash 改为 /sbin/nologin ,该用户就会被禁用,无法登陆。
当然,如果粗心大意把这个字段的 shell 名字写错了,也会造成无法登陆的情况。