day 5

用户管理

用户

1.什么是用户
2.为何需要

​ 1.开发人员需要使用系统 ​ 2.进程需要依赖用户(不用登录系统)

3.用户约定(可不遵守)

​ 参考/etc/login.defs文件 ​ 0 ​ 超级管理员,不要将root替代为其他的名称 ​ 1-200 ​ 系统用户,一般运行系统自带的核心程序 ​ 201-999 ​ 系统用户,一般运行用户自行开发的程序 ​ 1000~60000 ​ 普通用户,常用于登录系统

创建用户:
  创建用户:
	[root@node ~]# useradd oldxu -u 6969 -g ops -G dev -c "2000 New Students" -s /bin/bash
	[root@node ~]# id oldxu
	uid=6969(oldxu) gid=1003(ops) 组=1003(ops),1004(dev)
	[root@node ~]# tail -1 /etc/passwd
	oldxu:x:6969:1003:2000 New Students:/home/oldxu:/bin/bash

​ [root@node ~]# useradd mysql -r -M -s /sbin/nologin ​ [root@node ~]# id mysql ​ uid=998(mysql) gid=996(mysql) 组=996(mysql) ​ [root@node ~]#

修改用户:

​ [root@node ~]# groupadd network ​ [root@node ~]# groupadd sa ​ [root@node ~]# usermod oldxu -u 5008 -g network -G ops,dev,sa -c "student" -l new_oldxu

[root@node ~]# id oldxu id: oldxu: no such user

	[root@node ~]# id new_oldxu
uid=5008(new_oldxu)gid=1005(network) 组=1005(network),1003(ops),1004(dev),1006(sa)

[root@node ~]# tail -1 /etc/passwd
	new_oldxu:x:5008:1005:student:/home/oldxu:/bin/bash
删除用户:

​ [root@node ~]# userdel -r oldxu

批量删除:

​ 1.如何确定这些是没有用的用户 UID>=1000 ​

		2.提取用户名称
		3.拼接命令
		
	[root@node ~]# awk -F ':' '$3>=1000' /etc/passwd |awk -F ':' '{print $1}' | sed -r 's#(.*)# userdel -r \1#g' | bash
	[root@node ~]# awk -F ':' '$3>=1000 {print $1}' /etc/passwd | sed -r 's#(.*)# userdel -r \1#g'  | bash
4.配置文件

​ /etc/passwd 用户信息 ​ /etc/shadow用户密码信息

5.用户管理命令

​ useradd ​ 选项 ​ usermod ​ 选项 ​ userdel ​ 选项

创建用户流程:

		参考:
			/etc/login.defs				定义了创建用户时 `UID` 划分规则,密码加密类型,是否创建家目录等
			/etc/default/useradd		家目录的位置、环境变量从哪里复制;是否创建邮箱;
			
			默认的创建用户的规则和选项:
			
		默认创建用户:
			1.分配UID;
			1.添加passwd 记录;
			2.在/home目录下创建一个与名称相同的家目录;
			3.拷贝/etc/skel/ 环境变量文件;
			4.创建邮箱;

		注意:
			使用useradd 的选项优先级要比默认的配置高;

用户组

创建组:

​ groupadd ​

		指定GID:-g
		groupadd group_name -g GID
	

	修改组:
		groupmod 
	
	删除组(组中不能有成员):
	
		groupdel Group_name  
1.什么是组
2.组的分类

​ 默认组 ​ 基本组 ​ 附加组

3.组的配置

​ /etc/group ​ /etc/gshadow

4.组的管理命令

​ groupadd:添加组 ​ groupmod:修改组 ​ groupdel:删除组

5.用户与组的关系

​ 密码 ​ 设定密码 ​ passwd ​ 交互式 ​ passwd oldxu ​ 非交互式:简单密码 ​ echo "123" | passwd --stdin oldxu ​ 分支主题 4

注:stdin(只有根用户权限才可以此操作)