5、用户管理
1、用户相关配置文件:/etc/passwd
名称:密码占位符:UID:GID:用户描述信息:用户家目录:用户shell类型
UID: 0 超级用户
1-200 系统UID
201-999 服务账号
1000-60000 普通用户
(nfsnobady除外,uid为65534,NFS服务匿名访问用户的本地用户UID)
uname -r (查看内核版本信息)
GID:
chmod 数字 #改文件权限
chown 所有者:所属组 #改所有者、所属组权限
gpasswd -a 用户名 组名 #用户加入组,永久生效
id #查用户uid、gid及附加组
newgrp 组名 #更改所在组,临时性
exit #退出
初始组:用户创建时加入的组,在/etc/passwd
附加组:后续为获取权限添加的组
当前组:id---gid中显示的,影响新建文件的所属组
groups #显示当前所在组,从当前组开始显示
用户shell类型:
shell:命令解释器
/bin/bash #普通用户和root用户使用
2、/etc/shadow #存用户密码
用户名:加密密码:密码最近更改时间:密码不可被修改时间:有效期:到期前预警天数:到期后宽限天数:账号失效日期:保留
第三列:密码最近更改时间 #1970年1月1日作为标准时间计算
时间戳转日期: date -d “1970-01-01 时间戳 days”
日期转时间戳: echo $(($(date - - date= “2017/01/16” +%s)/86400+1))
第四列:密码不可被修改天数 #与第三列相比
第五列:有效期 #99999(273年)近似永久,与第三列相比
第六列:到期前预警天数 #与第五列相比
第七列:到期后宽限天数 #ima是失效日,与第五列相比
0 #到期后马上失效
5 #到期后,再五天失效
-1 #到期后永不失效
3、/etc/group #所属组信息
组名:组密码占位符:GID:组内成员(, 隔开)
gpasswd -A 管理员 组名 #给组添加管理员
gpasswd -A ““ 组名 #删除组的管理员
gpasswd -a 用户名 组名 #添加组成员
gpasswd -d 用户名 组名 #删除组成员
4、/etc/gshadow #存组密码
组名:加密密码:组管理员:组内成员
5、/etc/login.defs
MAIL_DIR /var/spool/mail #创建mail文件
PASS_MAX_DAYS 99999 #有效期
PASS_MIN_DAYS 0 #更改密码时间间隔
PASS_MIN_LEN 5 #密码最小长度
PASS_WARN_AGE 7 #密码到期前多久提醒
UID_MIN 1000 #普通用户最小开始uid 6版本为500
UID_MAX 60000 #普通用户最大uid
SYS_UID_MIN 201 #系统用户最小uid
SYS_UID_MAX 999 #系统用户最大uid
GID_MIN 1000 #普通组最小开始gid 6版本为500
GID_MAX 60000 #普通组最大gid
SYS_GID_MIN 201 #系统组最小gid
SYS_GID_MAX 999 #系统组最大gid
CREATE_HOME yes #创建家目录
UMASK 077 #默认掩码值
USERGROUPS_ENAB yes #删除用户时,若组无成员,则删除组
ENCRYPT_METHOD SHA512 #密码加密方式:SHA521
6、/etc/default/useradd #创建用户的默认文件
# useradd defaults file #创建用户的默认文件
GROUP=100 #新建用户时默认初始组GID,现在采用私有组机制,即创建用户时就创建组
HOME=/home #家目录
INACTIVE=-1 #不启用过期用户
EXPIRE= #不启用账号过期
SHELL=/bin/bash #shell类型
SKEL=/etc/skel #家目录模板
CREATE_MAIL_SPOOL=yes #创建邮箱缓存
用户管理的相关命令:
1、useradd 选项 用户名
-u uid 用户名 #指定uid添加用户
-g 初始组 用户名 #指定初始组添加用户
-G 附加组 用户名 #指定附加组添加用户
-d 家目录 用户名 #指定家目录添加用户
-s shell类型 用户名 #指定shell类型添加用户
-c 描述信息 用户名 #指定用户描述信息添加用户
-f -1 用户名 #永不停用
-M 用户名 #不创建家目录添加用户
常用:-u -g -s -M (创建服务用户)
创建服务用户(nginx),并换用户访问
groupadd -g 300 nginx
useradd -g nginx -u 300 -M -s /sbin/nologin
1、安装nginx:
配置网络源、本地源、挂载
yum安装rz net-tools gcc* zlib-devel pcre-devel
./configure - -prefix=/usr/local/nginx
2、测试: netstat -anpt
ps aux
3、换用户访问: #nobady---》nginx
路径 -s stop #停用
rm -rf /usr/local/nginx #源码包直接删除目录
./configure - -user=nginx - -prefix=/usr/local/nginx
make && make install
4、启用、测试
2、usermod 选项 用户名 #修改用户相关信息,一般不用
-u UID #修改用户的指定UID
-g 组名 #修改用户的指定初始组(尽量不修改)
-G 组名 #修改用户的附加组(不管之前设置了多少附加组,都替换掉)(加上-a选项可不替换)
-c 说明 #修改用户的描述信息
-d 目录 #结合 -m 选项直接对源家目录进行改名实现修改家目录
usermod –m –d /home/u4 user4 (用户user的原家目录是/home/user4)
-s shell类型 #修改用户的登录shell类型
-L(大) 用户名 #锁定用户的密码
-U(大) 用户名 #解锁用户密码
-l 新用户名 旧用户名 #修改用户名
3、userdel 选项 用户名
-r 家目录一起删除
4、passwd 选项 用户
-l #锁定用户,会在shadow的加密密码中加!!
-u #解锁用户
-s #查看用户状态
非交互式创建密码用户 #用于脚本
useradd 用户名 && echo “密码” | passwd - - stdin 用户名
5、groupadd 选项 GID 组名
-g #新建指定组id的组
6、gpasswd 选项 用户名 组名
-a 添加
-d 删除
-M #覆盖式定义组内成员 用 , 隔开
7、newgrp 组名 #临时组切换
exit #退出
8、groupdel 组名 #删除组
9、groups #查看用户所属哪些组
其他命令
id
su #不完全切换
su- #完全切换
echo $PATH #环境变量
finger #查看信息
实验:
切换root用户把/etc/passwd文件中user1的shell类型改成/bin/csh。
退出root用户,分别用su和su-切换用户用useradd命令看效果(切换后pwd看到的目录有区别)。