菜单
本页目录

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看到的目录有区别)。