Linux笔记(五) - 用户管理命令
(1)添加用户:useradd [选项] 用户
-u UID:手工指定用户的UID号
-d 家目录:手工指定用户的家目录
-c 用户说明:手工指定用户说明,有空格需加双引号
-g 初始组:手工指定初始组
-G 附加组:手工指定附加组,多个组用逗号
-s shell:手工指定用户登录shell,默认/bin/bash/
例:useradd admin
(2)更改用户
更改用户密码:passwd [选项] 用户
-S 查询用户密码的密码状态(仅root可用)
-l 暂时锁定用户(仅root可用)
-u 解锁用户(仅root可用)
--stbin 可以通过管道符输出的数据作为用户的密码
例:passwd admin
echo '123' | passwd --stdin admin
更改用户信息:usermod [选项] 用户
-u UID:手工指定用户的UID号
-d 家目录:手工指定用户的家目录
-c 用户说明:手工指定用户说明,有空格需加双引号
-g 初始组:手工指定初始组
-G 附加组:手工指定附加组,多个组用逗号
-s shell:手工指定用户登录shell,默认/bin/bash/
-L 暂时锁定用户
-U 解锁用户
例:usermod -G my admin
更改用户密码状态:chage [选项] 用户
-l 查询用户的详细密码状态
-d 修改密码最后一次更改日期
-m 两次密码修改间隔时间
-M 密码有效期
-W 密码过期前警告天数
-I 密码过期后的宽限天数
-E 账号失效时间
例:chage -d 0 admin
把修改密码日期归0,用户一登录就要修改密码
(3)删除用户:userdel [-r] 用户名
-r 删除用户家目录
例:userdel -r admin
用户切换命令:su [选项] 用户
- 连带用户环境变量一起切换
-c 仅执行一次命令,不切换用户身份
例:su - root -c 'useradd admin'
(4)查看登录的用户:who
本地登录 tty
远程登录 pts
例:who
查看登录用户详细信息:w
例:w
查看用户ID:id 用户
(5)查看系统连续运行时间:uptime
例:uptime
(6)用户配置文件
1.用户信息文件:/etc/passwd
第1字段:用户名称
第2字段:密码标志
第3字段:UID(用户id)
0:超级用户
1-499:系统用户(伪用户)
500-65535:普通用户
第4字段:GID(用户初始组ID)
第5字段:用户说明
第6字段:家目录
普通用户:/home/用户名/
超级用户:/root/
第7字段:登录之后的Shell
初始组:用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的初始组。
附加组:用户可以加入多个其他用户组,并拥有这些组的权限
2.影子文件:/etc/shadow
第1字段:用户名称
第2字段:加密密码
加密算法升级为SHA512散列加密算法
如果密码位是'!!'或'*'即没有密码。不可登录
第3字段:密码最后一次修改日期
使用1970年1月1日作为标准时间,每过一天时间加1
第4字段:两次密码的修改所需间隔时间(和第3字段相比)
第5字段:密码有效期(和第3字段相比)
第6字段:密码修改到期前的警告天数(和第6字段相比)
第7字段:密码过期后的宽限天数(和第5字段相比)
0(空):过期后立即失效
-1:永不失效
第8字段:账号失效时间(用时间戳表示)
第9字段:保留
把时间戳换算为日期:date -d "1970-01-01 16066 days"
把日期换算为时间戳:echo $(($(date --date='2014/01/06' +%s)/86400+1))
3.用户默认值文件:/etc/default/useradd
GROUP=100 #用户默认组
HOME=/home #用户家目录
INACTIVE=-1 #密码过期宽限天数
EXPIRE= #密码失效时间
SHELL=/bin/bash #默认shell
SKEL=/etc/skel #默认模板
CREATE_MAIL_SPOOL=yes #是否建立邮箱
(7)用户组配置文件
1.组信息文件:/etc/group
第1字段:组名
第2字段:组密码标志
第3字段:GID
第4字段:组中附加用户
2.组密码文件:/etc/gshadow
第1字段:组名
第2字段:组密码
第3字段:组管理员用户名
第4字段:组中附加用户
(8)用户管理相关文件
1.用户的家目录
普通用户:/home/用户名/,所有者和所属组都是此用户,权限是700
超级用户:/root/,所有者和所属组都是root用户,权限是550
2.用户邮箱:/var/spool/mail/用户名/
3.用户模板目录:/etc/skel/
(9)用户组管理命令
1.添加用户组:groupadd [选项] 组名
-g :指定组id
例:groupadd gadmin
2.修改组:groupmod [选项] 组名
-g:组id
-n:新组名
例:groupmod -n gadmin
3.删除组:groupdel 组名
例:groupdel gadmin
4.把用户添加入组或从组中删除:gpasswd [选项] 组名
-a:把用户加入组
-d:把用户从组中删除
例:gpasswod -a admin gadmin
gpasswod -d admin gadmin