六、 用户管理
通过对用户的合理管理,让用户更好的管理系统,通常用户分为以下三类:
1) 超级用户:可调用系统内所有资源 2) 系统用户:不可登录,用特定权限运行特定程序(限定权限) 3) 普通用户:普通管理员,只能管理和本用户相关的信息
UID:用户唯一标识符
UID范围(CentOS6.) (CentOS7.) 2^32 用户总量
超级: root(0) root(0)
系统: 1-499 1-999 nfsnobody(65534)系统用户
普通: 500-65535 1000-65535
组分类:组本身没有类型,但根据该组所对应的用户进行类型的确认
初始组(私有组)
附加组(公共组)
有效组(创建的文件时该文件的属组则是该用户当前的有效组)
-rw-r--r-- /etc/passwd 用户信息配置文件
第一列:用户名 第二列:密码占位符(x) 第三列:UID 第四列:GID(用户初始组) 第五列:用户描述信息(可不写) 第六列:用户家目录(用户存放自己文件的位置) 第七列:登录shell类型(shell 命令解析器 /bin/bash,/sbin/nologin)
---------- /etc/shadow 密码配置文件
第一列:用户名 第二列:加密密码(SHA512散列模式加密。若为空,则仅限本地无密码登录,'*'或'!!'代表无密码) 第三列:密码最近修改时间 1970.01.01(Unix元年) 第四列:密码最短有效期 密码最少要使用的时间,期间不可修改密码 第五列:密码最长有效期 99999 第六列:密码到期前的警告天数 第七列:密码到期后的宽限天数 第八列:密码到期的时间(具体的某一时间点) 1970.01.01(Unix元年) 第九列:保留
-rw-r--r-- /etc/group 组信息配置文件
第一列:组名 第二列:密码占位符(x) 第三列:GID 第四列:组成员列表
---------- /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天,登录即修改