Linux中的用户和用户组的相关配置文件
在新建一个用户时会自动更新创建下面的七个相关文件
一、用户信息文件:/etc/passwd
字段1:用户名称
字段2:密码标志(x代表这个用户是存在密码的,真正的密码是存放在/etc/shadow文件中并用密文加密的,而且该文件权限是000,任何用户都没有任何权限,保证了安全性,当取消x密码标记时登录时系统不会调用/etc/shadow文件进行密码校对,这个可以使本地登录不需要密码,但是远程登录的SSH协议是不允许没有密码的用户登录的。)
字段3:UID(用户ID)
0:超级用户
1-999:系统用户(伪用户)
1000-(2的23次方):普通用户
字段4:GID(用户初始组ID)
初始组:就是指用户刚刚创建的时候分配的用户组,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名。
附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个
字段5:用户说明(可以没有)
字段6:家目录(属主目录)。普通用户:/home/用户名/。超级用户:/root/。
字段7:登录之后的Shell。Shell就是Linux的命令解释器,一般默认都是/bin/bash,也可以写成别的,改成别的会造成不能登录,如伪用户都是/sbin/nologin。
用户的默认信息配置文件在/etc/default/useradd和/etc/login.gefs,新建用户不指定的选项会选择这些文件中的默认值:
GROUP:默认组
HOME:/home:默认家目录
INACTIVE:密码过期宽限天数
EXPIRE:密码失效时间
SHELL:默认shell
SKEL:默认模版目录
CREATE_MAIL_SPOOL:是否默认建立邮箱
PASS_MAX_DAYS:密码有效期
PASS_MIN_DAYS:密码修改间隔
PASS_MIN_LEN:密码最小位数
PASS_WARN_AGE:密码到期警告
UID_MIN,UID_MAX:用户最小和最大UID范围
SYS_UID_MIN,SYS_UID_MAX:系统用户最小和最大UID范围
GID_MIN,GID_MAX:用户组最小和最大UID范围
SYS_GID_MIN,SYS_GID_MAX:系统用户组最小和最大UID范围
CREATE_HOME :是否创建新用户的家目录
USERGROUPS_ENAB:是否创建并激活新用户的对应用户组
ENCRYPT_METHOD SHA512:加密模式
二、影子文件:/etc/shadow
字段1:用户名称
字段2:加密以后的密码,采用SHA512散列加密算法,如果这里显示"!!"或"*"表示没有密码,不能登录
字段3:密码最后一次修改日期,是一个时间戳,使用的是1970年1月1日作为标准时间,每过一天时间戳加1。
字段4:两次密码的修改间隔时间(如果为4表示设置一次密码4天以后才能再次修改密码)
字段5:密码有效期(单位是天)
字段6:密码到期前多少天开始每次登录都警告
字段7:密码过期后的宽限天数,0或者不写都表示到期立即禁止登录,-1表示密码永远不会失效
字段8:帐号失效时间(用时间戳表示)
字段9:保留
时间戳转化为年月日的时间:
date -d "1970-01-01 时间戳 days"
把日期换算成时间戳:
echo $(($(date --date="2014/01/13" +%s)/86400+1))
三、组信息文件/etc/group
字段1:组名
字段2:组密码标志
字段3:GID
字段4:组中附加用户
四、组密码文件/etc/gshadow
字段1:组名
字段2:组密码
字段3:组管理员用户名
字段4:组中附加用户
五、家目录(宿主目录)
普通用户:/home/用户名/,所有者和所属组是此用户,权限是700。
超级用户:/root/,所有者和所属组都是root用户,权限是550。
如果通过手动把/etc/passwd里面的用户对应的UID改成0而强制改为超级用户家目录不会更改,还是位于/home/用户名/。
六、用户的邮箱:/var/spool/mail/用户名/
七、用户模版目录:/etc/skel/
在普通用户创建时,会自动创建家目录,家目录中也会自动生成一些文件,这些文件都是模版目录里面的文件,在用户创建时自动把模版目录下的文件复制到该用户的家目录。