#Linux学习# 用户和用户组管理

用户配置文件

在Linux中主要是通过用户配置文件来查看和修改用户信息。

初始组和附加组:初始组——就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组;附加组——指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。

用户信息文件/etc/passwd

第1字段:用户名称

第2字段:密码标志

第3字段:UID(用户ID),0——超级用户,1~499——超级用户(伪用户,不能用于登陆),500~65535——普通用户

第4字段:GID(用户初始组ID)

第5字段:用户说明

第6字段:家目录,普通用户——/home/用户名,超级用户:/root/

第7字段:登录之后的Shell

用户信息文件/etc/shadow

第1字段:用户名

第2字段:加密密码,如果密码位是“!!”或“*”代表没有密码,不能登录

第3字段:密码最后一次修改日期,使用1970年1月1日作为标准时间,每过一天时间戳加1

第4字段:两次密码的修改间隔时间(和第3字段相比)

第5字段:密码有效期(和第3字段相比)

第6字段:密码修改到期前的警告天数(和第5字段相比)

第7字段:密码过期后的宽限天数(和第5字段相比),0代表密码过期后立即失效,-1则代表密码永远不会失效

第8字段:账号失效时间,要用时间戳表示

第9字段:保留

时间戳换算:

把时间戳换算为日期:

date    -d    “1970-01-01 16066 days”

把日期换算为时间戳:

echo    $(($(date –date=”2014/01/06”+%s)/86400+1))

组信息文件/etc/group

第1字段:组名

第2字段:组密码标志

第3字段:GID

第4字段:组中附加用户

组密码文件/etc/gshadow

第1字段:组名

第2字段:组密码

第3字段:组管理员用户名

第4字段:组中附加用户

用户管理相关文件

用户家目录

普通用户:/home/用户名/,所有者和所属组都是此用户,权限是700;超级用户:/root/,所有者和所属组都是 root用户,权限是550。

用户的邮箱

/var/spool/mail/用户名/

用户模板目录

/etc/skel/

用户管理命令(附加)

用户默认值文件

/etc/default/useradd

GRUOP=100                                               #用户默认组

HOME=/home                                             #用户家目录

INACTIVE=-1                                              #密码过期宽限天数(7)

EXPIRE=                                                     #密码失效时间(8)

SHELL=/bin/bash                                        #默认shell

SKEL=/etc/skel                                            #模板目录

GREATE_MAIL_SPOOL=yes                     #是否建立邮箱

/etc/login.defs

PASS_MAX_DAYS    99999                        #密码有效期(5)

PASS_MIN_DAYS    0                                 #密码修改间隔(4)

PASS_MIN_LEN    5                                    #密码最小5位(PAM)

PASS_WARN_AGE    7                               #密码到期警告(6)

UID_MIN    500                                             #最小和最大UID范围

GID_MAX    60000

ENCRYPT_METHOD    SHA512                  #加密模式

usermod

选项与参数:

usermod    [-cdegGlsuLU]    username

-c:后面接账号的说明,即/etc/passwd第五栏的说明栏,可以加一些账号的说明

-d:后接账号的家目录,即修改/etc/passwd的第六栏

-e:后面接日期,格式是YYYY-MM-DD也就是在/etc/shadow内的第八个栏位的内容

-f:后面接天数,为shadow的第七栏位

-g:后面接初始用户组,修改/etc/passwd的第四个栏位,亦即是GID的栏位

-G:后面接次要用户组,修改这个使用者能够支持的用户组,修改的是/etc/group

-a:与-G合用,可增加次要用户组的支持,而非设置

-l:后面接账户名称,亦即是修改账号的名称,/etc/passwd的第一栏

-s:后面接shell的实际文件,例如/bin/bash或/bin/csh等

-u:后面接UID数字,即/etc/passwd第三栏的数据

-L:暂时将使用者的密码冻结,让它无法登陆,其实仅改/etc/shadow的密码栏

-U:将/etc/shadow密码栏的感叹号(!)拿掉,解锁账号

chage

选项与参数:

chage    [-ldmMWIE]    用户名

-l:列出用户的详细密码状态

-d:接日期,修改密码最后一次更改日期(shadow 3字段)

-m:接天数,两次密码修改间隔(4字段)

-M:接天数,密码有效期(5字段)

-W:接天数,密码过期前警告天数(6字段)

-I:接天数,密码过后宽限天数(7字段)

-E:接日期,账号失效时间(8字段)

chage    -d    0    username

这个命令其实是把密码修改日期归0,这样用户一登录就要修改密码

su

选项与参数:

su    [-lm]    [-c    命令]    username

-:代表使用login-shell的变量文件读取方式来登陆系统,若使用者名称没有加上去,则代表切换为root的身份。不使用-的话,很多环境变量不会切换。

-l:与-类似,但后面需要加欲切换的使用者账号,也是login-shell的方式

-m:-m和-p是一样的,表示使用目前的环境设置,而不读取新使用者的配置文件

-c:仅进行一次命令,所以-c后面可以加上命令

原文链接:https://www.cnblogs.com/zhuifeng17/archive/2020/05/26/12969569.html