用户管理概述
通过对用户的合理管理,让用户更好的管理系统,通常用户分为以下三类:
- 超级用户:可调用系统内所有资源
- 系统用户:不可登录,用特定权限运行特定程序(限定权限)
- 普通用户:普通管理员,只能管理和本用户相关的信息
UID:用户唯一标识符
- 组分类
组本身没有类型,但根据该组所对应的用户进行类型的确认- 初始组(私有组)
- 附加组(公共组)
- 有效组(创建的文件时该文件的属组则是该用户当前的有效组)
相关配置文件
-rw-r--r-- 1 root root 1531 2018-07-17 13:42:53 /etc/passwd 用户信息配置文件
第一列:用户名
第二列:密码占位符(x)
第三列:UID
第四列:GID(用户初始组)
第五列:用户描述信息(可不写)
第六列:用户家目录(用户存放自己文件的位置)
第七列:登录shell类型(shell 命令解析器 /bin/bash,/sbin/nologin)
---------- 1 root root 1123 2018-07-17 13:42:53 /etc/shadow 密码配置文件
第一列:用户名
第二列:加密密码(SHA512散列模式加密。若为空,则仅限本地无密码登录,'*'或'!!'代表无密码)
第三列:密码最近修改时间 1970.01.01(Unix元年)
第四列:密码最短有效期 密码最少要使用的时间,期间不可修改密码
第五列:密码最长有效期 99999
第六列:密码到期前的警告天数
第七列:密码到期后的宽限天数
第八列:密码到期的时间(具体的某一时间点) 1970.01.01(Unix元年)
第九列:保留
-rw-r--r-- 1 root root 716 2018-07-17 13:42:53 /etc/group 组信息配置文件
第一列:组名
第二列:密码占位符(x)
第三列:GID
第四列:组成员列表
---------- 1 root root 563 2019-07-17 13:42:53 /etc/gshadow 组密码配置文件
第一列:组名
第二列:组密码
第三列:组管理员
第四列:组成员列表
注:一般二、三列不设,保证最小权限,保证安全
两个位置文件的权限/etc/shadow & /etc/gshadow
在CentOS 6.* 系列中密码文件的权限 000 ----------
在CentOS 6.* 之前的操作系统中权限 400 -r--------
创建用户
私有组机制
在创建用户前,先创建和用户名同名的组,将同名组作为该用户的初始组
公共组机制
先创建一个组(如GID=100),以后创建的所有用户都用GID:100组作为初始组
新用户信息生成时参考配置文件
/etc/default/useradd
/etc/login.defs
新用户创建时模板文件目录
/etc/skel/
相关命令
1) useradd [选项] 用户名 新建用户
-u UID 用指定UID创建用户
-g 组名 指定初始组,尽量不要手动指定
-d 目录 手动指定家目录,目录不需要事先创建(指定缺省值/home)
-s shell类型 指定用户是否能登录系统
-r 创建系统用户,一般和-s 结合使用
-M 创建用户时不创建家目录
注:有效组定义:用户创建文件或目录时使用哪个组作为文件的所属组,就是有效组。
初始组、附加组:是用户和组之间的关系
有效组:用户和文件之间的关系
天数转日期:date -d "1970-01-01 19527 days"
日期转天数:echo $(($(date --date="2020/01/01" +%s )/86400+1))
2) passwd [选项] 用户名 更改密码
-l 用户名 锁定用户的密码,使之无法登录到系统
-u 用户名 解锁用户密码
-S 用户名 查看用户帐号的状态(是否被锁定)
非交互式设置密码: echo "111" | passwd --stdin username
3) usermod [选项] 用户名
-u UID 修改用户的指定UID
-g 组名 修改用户的指定初始组(尽量不修改)
-d 目录 结合 -m 选项直接对源家目录进行改名实现修改家目录
usermod -m -d /home/u4 user4(用户user4的原家目录是/home/user4)
-s shell类型 修改用户的登录shell类型
-L 用户名 锁定用户的密码
-U 用户名 解锁用户密码
-l 新用户名 旧用户名 修改用户名
4) userdel [选项] 用户名 删除用户
-r 删除用户时,连带家目录一起删除
5) gpasswd [选项] 用户名 组名
-a 向指定组内添加一个成员
-d 把指定用户从组内删除
-M 定义组内成员列表,用户之间用,分隔 (覆盖式)
6) id 用户名 显示用户的UID、初始组、附加组列表
7) su 用户名 切换用户身份
8) su - 用户名 切换用户身份,连带环境变量一起切换
9) newgrp 组名 修改用户的有效组,切换到普通用户之后,执行命令
10) chage -d 0 用户名 设置密码有效期为0天,登录即修改