#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后面可以加上命令