用户管理
1,用户信息文件/etc/passwd
用户名:是否有密码:UID:GID(初始化):说明信息:家目录:登陆之后的shell
UID取值范围:
超级用户:0
系统用户(伪用户):1-499
普通用户:500-65535
GID:
初始组,每一个用户必须有一个且只有一个初始组,一般就是和这个用户同名的组
附加组,用户可以有多个附加组
命令->shell就是命令解释器->内核
将普通用户赋予root权限,只需将UID改为0,改完后,提示符变为#,普通用户为$
2,用户密码文件/etc/shadow
注意,该文件权限为000,只有root可读,并且存放的是加密以后的密码,非明文,该文件可被暴力破解,注意保护
用户名:加密后的密码:密码最后修改的时间:下次密码修改必须与上次密码修改的天数间隔:密码有效天:提醒修改密码的天数:密码到期后的宽限天数:帐号失效时间:预留
密码显示为*或!!,意为不能登陆
密码最后修改的时间为时间戳,即自1970年1月1日后算起,每过一天加1天
密码到期后的宽限天数为-1表示永远不会生效
帐号失效时间也是时间戳表示法,到帐号失效时间,帐号即失效
时间戳转换日期:
date -d "1970-01-01 16066 days"
日期换时间戳:
echo $(($(date --date="2014/01/06" +%s)/86400+1))
3,组文件/etc/group
组名:组是否有密码:GID:组中的用户
4,组密码:/etc/gshadow
组名:组密码:组管理员用户:组中的用户
5,家目录:/home/username,权限是700
6,用户的邮箱/var/spool/mail
7,用户模板目录/etc/skel,创建新用户时,根据该目录的内容,创建默认的文件
useradd命令
-u , UID, 指定UID
-d , directory, 指定家目录
-c , common,指定用户说明
-g , group,指定初始组
-G , Group,指定附加组
-s , shell,指定登陆shell
useradd命令,默认值的配置文件:
/etc/default/useradd
GROUP=100 , 默认组
HOME=/home , 用户家目录
INACTIVE=-1 , 密码过期宽限天数
EXPIRE= , 密码有效天数
SHELL=/bin/bash , 默认shell
SKEL=/etc/skel , 模板目录
CREATE_MAIL_SPOOL=yes , 是否创建邮箱
/etc/login.defs
PASS_MAX_DAYS 99999 , 密码有效期
PASS_MIN_DAYS 0 ,密码修改间隔
PASS_MIN_LEN 5 , 密码最小位数(PAM文件设置)
PASS_WARN_AGE 7 , 密码到期警告天数
UID_MIN 500 , 最小和最大UID范围
GID_MAX 60000
ENCRYPT_METHOD SHA512 , 加密算法
passwd指令
不跟用户名,修改当前用户;只有root才有权限根其他用户名,也就是说,只有root才能修改其他用户的密码
-S, status, 察看用户的密码状态
-l, lock, 锁定用户
-u, unlock, 解锁用户
使用字符串生成密码,常用来为大量用户批量生成默认密码: echo "123" | passwd --stdin user
usermod指令,user modify, 修改用户信息,命令选项和useradd类似
chage指令,change, -l 察看用户密码状态,更直观, -d 设置上次密码修改日期
chage -d 0 username,用于批量添加用户后,赋予默认简单密码,需要让用户已登陆就要修改密码
userdel指令, 删除用户, -r 删除用户的同时同时删除用户家目录
id指令,察看用户uid,gid,groups
env指令,环境变量
用户切换su
- , 切换用户同时,连带切换用户环境变量
su - root, 切换为root
su - root -c "useradd user3" , 临时切换为root并执行命令
groupadd,添加组,-g 指定组ID
groupmod, 修改组, -g 修改组ID, -n 修改组名
groupdel, 删除组
注意,如果组是某用户的初始组,则不能删除
gpasswd, 将用户从组中添加或删除
-a, 添加用户
-d, 删除用户