用户和组的管理与使用

用户管理

信息存放

用户信息etc/passwd,账户密码存在/etc/shadow

/etc/passwd

由’:’分割成7个字段,每个字段的具体含义如下:
	字段名称						注释说明
	1.用户名称					#用户账号命名成
	2、密码占位符					#存放账户的口令,暂用X表示,密码保存在/etc/shadow
	3、用户的uid					#用户标识号
	4、用户基本组GID				#组标识号码
	5、用户注释					#用户详细信息
	6、用户家目录					#用户家目录,root家目录是/root普通用户的家目录存在/home
	7、用户登录shell				#用户登录linux使用shell cat/etc/shells

/etc/shadow

由‘:’分割成9个字段
	字段名称					注释说明
	1、用户登录名				用户的账号密码
	2、加密后的密码				用户密码,这是加密过的口令(未密码为!!)
	3、最近一次密码更改时间		从1970年到最近一次更改密码时间之间过了多少天
	4、密码最少使用几天			密码最少要使用几天才能更改密码(0表示无限制)
	5、密码最长使用几天			密码使用多少天需要更改密码
	6、密码到期前警告期限		密码到期前多少天提醒用户更改密码(默认过期前7天警告)
	7、密码到期后保持活动天数	在此期间内,用户依然可以登录系统并更改密码
	8、账号到期时间				到期后失效
	9、标志						保留
	密码格式
	$a$b$c

用户密码修改

chage更改用户密码,使用情况
	-d	设置最近一次更改密码时间,0下次登录系统强制修改密码
	-m	设置密码两次改变密码之间使用的最小天数
	-M	设置密码两次改变密码之间使用的最大天数
	-W	设置密码更改警告时间,将过期警告天数设为‘警告天数’
	-I	设置密码过期天数后,密码为失效状态
	-E	设置过期时间,账户失效后无法登录
	-l	显示用户信息
用法:chage [选项] 登录
	选项:
	  -d, --lastday 最近日期        将最近一次密码设置时间设为“最近日期”
	  -E, --expiredate 过期日期     将帐户过期时间设为“过期日期”
	  -h, --help                    显示此帮助信息并推出
	  -I, --inactive INACITVE       过期 INACTIVE 天数后,设定密码为失效状态
	  -l, --list                    显示帐户年龄信息
	  -m, --mindays 最小天数        将两次改变密码之间相距的最小天数设为“最小天数”
	  -M, --maxdays 最大天数        将两次改变密码之间相距的最大天数设为“最大天数”
	  -R, --root CHROOT_DIR         chroot 到的目录
	  -W, --warndays 警告天数       将过期警告天数设为“警告天数”

用户命令

添加用户前需要确定

	确定用户的默认组是否有特殊要求
	确定用户是否允许登录
	确定用户的密码策略
	确定用户的有效期限
	确定用户的uid是否有特殊要求

使用useradd命令新增账户

useradd命令
选项:
	  -b, --base-dir BASE_DIR	新账户的主目录的基目录
	  -c, --comment COMMENT         新账户的 GECOS 字段
	  -d, --home-dir HOME_DIR       新账户的主目录
	  -D, --defaults		显示或更改默认的 useradd 配置
	 -e, --expiredate EXPIRE_DATE  新账户的过期日期
	  -f, --inactive INACTIVE       新账户的密码不活动期
	  -g, --gid GROUP		新账户主组的名称或 ID
	  -G, --groups GROUPS	新账户的附加组列表
	  -h, --help                    显示此帮助信息并推出
	  -k, --skel SKEL_DIR	使用此目录作为骨架目录
	  -K, --key KEY=VALUE           不使用 /etc/login.defs 中的默认值
	  -l, --no-log-init	不要将此用户添加到最近登录和登录失败数据库
	  -m, --create-home	创建用户的主目录
	  -M, --no-create-home		不创建用户的主目录
	  -N, --no-user-group	不创建同名的组
	  -o, --non-unique		允许使用重复的 UID 创建用户
	  -p, --password PASSWORD		加密后的新账户密码
	  -r, --system                  创建一个系统账户
	  -R, --root CHROOT_DIR         chroot 到的目录
	  -s, --shell SHELL		新账户的登录 shell
	  -u, --uid UID			新账户的用户 ID
	  -U, --user-group		创建与用户同名的组
	  -Z, --selinux-user SEUSER		为 SELinux 用户映射使用指定 SEUSER

示例:

创建用户xiao
	指定UID5001,基本组student,附加组:sa,dba,注释信息‘2018 new student’,shell:bash
	[root@192 ~]# useradd -u 5001 -g student -G sa,dba -c "2018 new student" -d /home/xiao -s /bin/bash xiao
	[root@192 ~]# tail -1 /etc/passwd
	xiao:x:5001:1006:2018 new student:/home/xiao:/bin/bash
用法:usermod 修改用户属性
	选项:
	  -c, --comment 注释            GECOS 字段的新值
	  -d, --home HOME_DIR           用户的新主目录
	  -e, --expiredate EXPIRE_DATE  设定帐户过期的日期为 EXPIRE_DATE
	  -f, --inactive INACTIVE       过期 INACTIVE 天数后,设定密码为失效状态
	  -g, --gid GROUP               强制使用 GROUP 为新主组
	  -G, --groups GROUPS           新的附加组列表 GROUPS
	  -a, --append GROUP            将用户追加至上边 -G 中提到的附加组中,
									并不从其它组中删除此用户
	  -h, --help                    显示此帮助信息并推出
	  -l, --login LOGIN             新的登录名称

	  -m, --move-home               将家目录内容移至新位置 (仅于 -d 一起使用)
	  -o, --non-unique              允许使用重复的(非唯一的) UID
	  -p, --password PASSWORD       将加密过的密码 (PASSWORD) 设为新密码
	  -s, --shell SHELL             该用户帐号的新登录 shell
	  -u, --uid UID                 用户帐号的新 UID
	  -L, --lock                    锁定用户帐号
	  -U, --unlock                  解锁用户帐号
finger 查询用户信息以及登录信息
	示例:	
		[root@192 ~]# finger xiaoadd
		Login: xiaoadd         			Name: 2018 new student
		Directory: /home/xiaoadd             	Shell: /bin/bash
		Never logged in.
		No mail.
		No Plan.
chfn修改用户信息
	[root@192 ~]# chfn xiaoadd
	Changing finger information for xiaoadd.
	名称 [2018 new student]: xiao
	办公 []: wlmq
	办公电话 []: 0991-2327227
	住宅电话 []: 123456
	Finger information changed.
chsh  更改用户登录的shell
	[root@192 ~]# chsh xiaoadd
	Changing shell for xiaoadd.
	New shell [/bin/bash]: /bin/bash
	chsh: Shell not changed.
查看登录情况
	who
	w

userdel 删除用户

[root@192 ~]# userdel 
	用法:userdel [选项] 登录

	选项:
	  -h, --help                    显示此帮助信息并推出
	  -r, --remove                  删除主目录和邮件池
	示例:
		[root@192 ~]# userdel -r 123456
		[root@192 ~]# ls /home/
		741  xiao  xiao1

用户创建原理

创建用户模板文件
		/etc/passwd	//账号文件
		/etc/shadow	//密码文件
		/etc/default/useradd  //用户模板文件
		/etc/login.defs		//用户创建取值文件
		/etc/skel		//家目录文件
默认创建执行/etc/default/useradd,如需变更环境拷贝目录站点可修改/etc/default/useradd
	
	[root@192 ~]# egrep -v "^#|^$" /etc/login.defs   //过滤#和空行显示有效行数 
	MAIL_DIR	/var/spool/mail
	PASS_MAX_DAYS	99999
	PASS_MIN_DAYS	0
	PASS_MIN_LEN	5	//密码级别,8位以上
	PASS_WARN_AGE	7
	UID_MIN                  1000
	UID_MAX                 60000
	SYS_UID_MIN               201
	SYS_UID_MAX               999
	GID_MIN                  1000
	GID_MAX                 60000
	SYS_GID_MIN               201
	SYS_GID_MAX               999
	CREATE_HOME	yes
	UMASK           077		//权限
	USERGROUPS_ENAB yes
	ENCRYPT_METHOD SHA512 

	[root@192 ~]# cat /etc/default/useradd 
	# useradd defaults file
	GROUP=100
	HOME=/home				//用户家目录
	INACTIVE=-1				//是否启用账号过期停权,-1表示不启用
	EXPIRE=					//账号终止日期,不设置表示不启用
	SHELL=/bin/bash			//新用户默认所有的shell类型
	SKEL=/etc/skel			//配置新用户家目录的默认存放路径
	CREATE_MAIL_SPOOL=yes	//是否创建邮箱
故障示例:
	用户登录linux系统,环境变量被误删除,出现-bash-4.2$(或者其他的*.*)解决办法
	-bash-4.2$ cp -a /etc/skel/.bash* ./
	-bash-4.2$ exit
	重新登录

密码管理

新创建的账户默认没有密码,所以该账户无法登录操作系统,只有使用passwd设置密码以后可以登录
密码设置标准
	1、长度大于10位字符;
	2、密码包含大小写字母数字以及特殊字符,不包含空格
	3、不规则性
修改密码注意事项
	1、普通用户只能更改自己的
	2、管理员root可以管理所有的
	语法:
		[root@192 ~]# passwd xiao
		更改用户 xiao 的密码 。
		新的 密码:
		重新输入新的 密码:
		passwd:所有的身份验证令牌已经成功更新。
	备注:
		passwd 后面不添加用户名修改的是当前用户
随机产生密码方式
	示例1:
		[741@192 ~]$ echo $RANDOM|md5sum|cut -c 1-10
		89ca15826e
	示例2:
		[root@192 ~]# yum install -y expect
		[root@192 ~]# mkpasswd -l 15 -d 3 -C 5   -l密码长度 -d数字 -c小写字母 -C大写字母
		OesX9z3rAIj6$So
无需交互修改密码
	[root@192 ~]# echo "123" | passwd --stdin 741	//echo "123"表示输出结果,passwd --stdin 741表示输入结果
	更改用户 741 的密码 。
	passwd:所有的身份验证令牌已经成功更新。

组命令管理

组信息保存位置/etc/group和/etc/gshadow

组信息

[xiao@192 ~]$ head -2 /etc/group
	root:x:0:
	字段名称		注释说明
	1、组账户名称	组名称
	2、密码占位符	组的密码(/etc/gshadow)
	3、组GID		组GID信息
	4、组成员		显示附加组成员,不显示基本成员
[root@192 ~]# head -2 /etc/gshadow
	root:::
	字段名称		注释说明
	1、组账户名称	组名称
	2、密码占位符	组的密码
	3、组管理员		组管理员
	4、组成员		显示附加组成员,不显示基本成员

创建组

	[root@192 ~]# groupadd 
		用法:groupadd [选项] 组

		选项:
		  -f, --force		如果组已经存在则成功退出并且如果 GID 已经存在则取消 -g
		  -g, --gid GID                 为新组使用 GID
		  -h, --help                    显示此帮助信息并推出
		  -K, --key KEY=VALUE           不使用 /etc/login.defs 中的默认值
		  -o, --non-unique              允许创建有重复 GID 的组
		  -p, --password PASSWORD       为新组使用此加密过的密码
		  -r, --system                  创建一个系统账户
		  -R, --root CHROOT_DIR         chroot 到的目录
	创建默认组
		[root@192 ~]# groupadd boos
		[root@192 ~]# tail -1 /etc/group
		boos:x:1007:
	创建指定组
		[root@192 ~]# groupadd -g 2000 file 
		[root@192 ~]# tail -1 /etc/group
		file:x:2000:
	创建系统组(gid从201-999)
		[root@192 ~]# groupadd -g 202 file2
		[root@192 ~]# tail -1 /etc/group
		file2:x:202:
修改已经创建的组
	groupmod命令
		用法:groupmod [选项] 组
		选项:
		  -g, --gid GID                 将组 ID 改为 GID
		  -h, --help                    显示此帮助信息并推出
		  -n, --new-name NEW_GROUP      改名为 NEW_GROUP
		  -o, --non-unique              允许使用重复的 GID
		  -p, --password PASSWORD	将密码更改为(加密过的) PASSWORD
		  -R, --root CHROOT_DIR         chroot 到的目录
	示例:
		[root@192 ~]# tail -1 /etc/group
		file4:x:202:
		[root@192 ~]# groupmod -g 2006 file4 	//该组gid
		[root@192 ~]# tail -1 /etc/group
		file4:x:2006:
		[root@192 ~]# groupmod -n xiao1 file4	//重命名组
		[root@192 ~]# tail -1 /etc/group
		xiao1:x:2006:

组删除

	groupdel  ,只能删除附加组,无法删除基本组,只有删除用户或者用户变更基本后,才可以删除改组		

身份切换

有些操作无法操作需要root用户才能操作,需要临时切换到root身份
交互式shell		等待用户输入执行命令(终端操作),exit退出
非交互式shell	执行shell脚本,脚本执行结束shell自动退出

登录shell  		需要输入用户名和密码才进shell ,su - username
非登录shell		不需要输入用户和密码就能进入,sh bash
	1、把交互命令转换成同等功能非交互命令
	2、提前做好应答文件
查看登录shell
	[root@192 ~]# pstree
临时设置,永久设置需要修改配置文件
bash的配置文件保存用户的工作环境
	个人配置文件:~/.bash_profile和 ~/.bashrc
	全局配置文件:/etc/profile 	/etc/profile.d/*.sh  	/etc/bashrc
	profile	类文件:设定环境变量,登录前运行的脚本命令
	bashrc	类文件:设定本地变量,定义命令别名
	字符串环境变量文件:/etc/locale.conf (Centos7)

全局配和个人呢配置冲突,以个人配置为准
shell配置文件应用顺序
	登录shell 配置文件执行顺序
		/etc/profile->/etc/profile.d/*.sh->~/.bash_profile->~/.bashrc->/etc/bashrc
	非登陆式shell配置文件执行顺序
		~/.bashrc->/etc/bashrc->/etc/profile.d/*.sh

sudo提升权限

su 是从root用户切换到普通用户
	[root@xiao ~]# su - xiao -c 'ifconfig'
	加-	代表进入登录是shell
	不加 代表非登录式shell
默认只有root用户能使用sudo命令,普通用户想使用,是需要root预先设定的,即使用visudo命令去编辑相关的配置文件/etc/sudoers

centos7提权方法,授权用户具有管理员所有的权限,不建议使用
	[root@xiao ~]# usermod -G wheel xiao
日志审计
	[root@xiao ~]# sudo tail -f /var/log/secure
	使用visudo命令编辑/etc/sudoers配置文件
	使用visudo,等于使用vi 编辑sudoers配置文件	
	
	日志路径
	/var/log/message  公共日志
	时间:地点(主机名):人物(进程):信息
	/var/log/secure		安全日志
	
sudo 配置选项解释
	用户名/组名 	主机名		角色名		命令名
	%wheel				ALL=	(ALL)		ALL
	# %wheel			ALL=	(ALL)		NOPASSWD: ALL
普通用户验证sudo权限
	[root@xiao~]# su - xiao1
检查普通用户sudo权限明细
	[xiao1@xiao ~]$ sudo -l
案例需求:
	要求
visudo -c 语法检测

用户和组存在的意义

1、系统上的每一个进程(运行的程序)都需要特定的用户运行
2、每一个文件都有特定的用户拥有
3、访问文件或目录受到用户的限制
4、进程能够以何种方式访问某一文件或目录,与进程所关联的用户有关

查看当前用户登录的用户信息

[root@192 ~]# id
uid=0(root) gid=0(root) 组=0(root)

用户uid的分类

0超级管理员
1-200系统用户,有系统分配给系统的进程使用
201-999系统用户,用来运行服务账号,不需要登录系统(动态分配)
1000+常规用户
用户的取值范围
0-65535

组类别

基本组	优先使用基本组,用户只能属于一个基本组,用户默认基本组
附加组	基本组不能满足权限要求,创建附加组,用户可以属于多个附加组
私有组	创建用户是如果没有指定基本组,系统会创建和用户同名的组(可以更改)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值