1.5 Linux系统中的用户管理

用户及用户组存在的意义

用户存在的意义

  • 系统的资源有限
  • 要对有限的资源进行合理的分配,使用身份授权认证的方式进行分类管理时高效的

身份(Account), 授权(Author), 认证(Auth),统称3A.
3A机制构成了最底层的安全架构.

用户组存在的意义

大量的用户同样需要分类管理.
用户组是一个逻辑容器,用于对用户进行归类和统一授权.

用户相关知识

人对于用户的记忆偏向于用户名,而计算机为了方便存储和效率,更偏向于使用用户ID等数字化的方式对用户进行记录,对于用户组也是同样的道理.每个用户都有自己的用户ID,每个用户组也同样具有组ID.

用户的存在形式就是/etc/passwd文件中的一行字符;
用户组的存在形式就是/etc/group 文件中的一行字符.

用户的切换与查看

用户查看

whoami		##顾名思义,显示当前用户的用户名

当然绝大多数使用场景下我们需要使用ID而不是用户名.
可以通过id命令获取相关信息.

id								##用户信息查询命令
id								##查看当前用户id信息,包含用户id,主组id,用户所有组的id
id -u 用户名						##查看指定用户的用户ID
id -g 用户名						##查看指定用户的主组ID
id -G 用户名						##查看指定用户所有的组的ID
id -n 其他参数					##显示名称,与其他参数同时使用

##不附加-n参数时,输出为id,附加-n参数时输出为名称

ID查询

用户ID范围

用户id范围: 0-65535
0: Linux超级用户ID
1-999: Liunx系统自用ID
1000-65535: 用户级ID

以上ID设定规则都被记录在/etc/login.defs

用户切换

su - username					##切换用户到username用户
-								#表示切换用户环境

##从root用户切换到普通用户不需要输入密码
##从普通用户切换到root用户需要输入密码
##从普通用户切换到普通用户需要输入密码

##换言之,从高权限切换到低权限不需要密码,反之需要.

注意: 在做用户切换时当使用完毕用户身份及时退出,不要在一个shell中反复执行su命令,避免不必要的权限错误.
用户切换

用户涉及的系统文件

/etc/passwd					##用户身份信息文件
/etc/group 					##组身份信息文件
#组名称:组密码:组id:组的附加成员
/etc/skel/.* 				##用户环境配置文件模板
/etc/shadow 				##用户认证信息文件
/home/username 				##用户家目录
/root						##超级用户家目录
/var/spool/mail/username 	##用户邮箱文件

passwd顺便一提,/sbin/nologin表示不用于登陆的系统用户.

Group

用户和用户组建立及删除

#用户相关
useradd						##创建用户

useradd username			##建立用户名为username的用户
useradd -u id username		##建立同时设置其用户ID
useradd -g id username		##建立同时设置其组ID
useradd -G id username		##建立同时为其设置附加组
useradd -d dir username	 	##建立同时指定其家目录
useradd -M username			##不为其同步建立家目录
useradd -c word username	##建立同时增加用户说明
useradd -s shell username	##建立同时指定其默认Shell

userdel						##删除用户
							##默认不会清除家目录和邮件目录等等,会留下残留
userdel -r username			##删除用户同时清除其系统配置

##组相关
groupadd					##建立用户组
groupadd groupname			##建立名为iegroupname的用户组
groupname -g id groupname	##建立同时设置其组ID

groupdel					##删除用户组

UseraddUserdel
同理可进行组的创建和删除实验.
Group相关

用户和用户组的信息管理

对已经存在的用户和用户组进行信息修改使用usermodgroupmod命令.
参数可指定想要修改的信息.

usermod
			-l			#更改用户名称
			-u			#更改用户id
			-g			#更改主组id
			-G			#更改用户附加组身份
			-aG			#添加用户附加组身份
			-c			#更改用户说明
			-d			#更改家目录指向
			-g id-md	#更改家目录指向同时更改家目录名称
			-s			#更改默认shell
			-L			#冻结账号
			-U			#解锁

##冻结和解锁在下文的用户认证部分有进行讲解
groupmod -g			##更改用户组id

usermodgroupmod

用户认证信息管理

上文提到过,用户认证相关信息存储在/etc/shadow文件中,浏览/etc/shadow可以看到用户认证相关的设置,当然,用户密码部分是加密的.
shadow这里对上述格式中的部分内容进行解释.

密码使用时间为1970/1/1到现在的时间
最短有效期指修改密码后最短多长时间无法修改密码
最长有效期指最长使用多少天后必须修改密码
过期前警告期指必须修改密码前的多少天发送邮件对用户进行提醒.
账号非活跃期指虽然账号已经过期但仍可暂时使用的缓冲时间
账号到期时间指到设定的时间账号将被冻结

以上这些信息都可以通过passwdchage指令进行更改

passwd -S username			##查看指定用户的密码设置状态
passwd username				##更改指定用户的密码
##只有root可以执行 “echo 123 | passwd --stdin lee”
passwd						##更改用户密码

passwd -l username			##冻结账号认证
passwd -u  username			##解索账号认证

passwd -d username			##删除指定用户的密码

##修改默认使用时间
passwd -e username			##修改默认使用时间为0
chage -d 0 username			##效果同上

##修改最短有效期
passwd -n 1 username		##指定用户1天内不能修改密码
chage -m 1 username			##效果同上

##修改最长有效期
passwd -x 30 username		##指定用户30天内必须更改密码,否则用户会被冻结
chage -M 30 username		##效果同上

#密码过期警告
passwd -w 5 username		##密码过期前5天进行邮件警告
chage -W 5 username			##效果同上

#非活跃天数
passwd -i 5 username		##用户认证最大时间超过5天内仍可登陆,5天后冻结
chage -I 5 username			##效果同上

#账号认证到期时间
chage -E "2021-01-25"		##2021/1/25日账号会被冻结

修改密码
passwd修改
结果验证

用户权力下放

Linux对于权限的管理可以说是比较严格的了.
普通用户通常是无法执行系统管理命令的,如果需要普通用户执行系统管理动作,那么必须root用户来进行授权.这种操作称之为权力下放或者"提权".

普通用户授权方式
sudo
作用:
使普通用户使用指定的用户身份运行系统管理命令.
但能够运行什么指令是需要提前预定义的.

授权方法:
visudo
此命令作用是编辑/etc/sudoers并提供语法检测.用vim也可以打开该文件编辑,但不提供语法检测,为了保证操作的正确,还是推荐使用visudo.

用户授权相关信息在文件的100行左右,使用:100可快速跳转到100行所在位置.
授权时应注意主机名 授权对象 命令的绝对地址.
可通过以下指令查询所需要的信息

hostname			##查看主机名
which 命令			##查看命令对应的文件在系统中的绝对地址

授权操作时可允许免密 在绝对地址前增加NOPASSWD:即可,否则每次进行sudo操作时都需要输入密码.
visudo授权执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值