Linux系统基础(5)--用户和用户组

一.用户和用户组存在的意义

用户

服务器添加多账户的作用:

  1. 针对不同用户分配不同的权限,不同权限可以限制用户可以访问到的系统资源
  2. 提高系统安全性。
  3. 帮助系统管理员对使用该系统的用户进行追踪。

3A认证

  • 身份 account
  • 授权 author
  • 认证 auth

用户组

用户组是一个逻辑容器,对用户进行归类和统一授权

理论上Linux系统中的每个用户在创建时都应该有一个对应的用户组,这个组就称之为用户的主组。同时,有些情况下,某个用户需要临时使用某个组的权限,那这个组就称之为这个用户的附属组或附加组。

主组只能拥有一个,但是附属组或附加组可以同时拥有多个。

二.用户及用户组相关文件

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

  • /etc/passwd 用户身份信息文件
  • /etc/group 用户组身份信息文件
  • /etc/skel/.* 用户环境配置文件模板
  • /etc/shadow 用户认证信息文件
  • /home/username 用户家目录

三.用户操作

1./etc/passwd文件解析

vim /etc/passwd
	root:x:0:0:root:/root:/bin/bash

一共拥有7列:
第1列:用户名称
第2列:用户的密码,使用一个x占位符,真实密码存储在/etc/shadow
第3列:用户的ID
第4列:用户的主组ID
第5列:代表注释信息,# useradd -c “备注信息” 用户名称
第6列:用户的家目录,默认/home/用户名称
第7列:用户可以使用的Shell类型

2.用户信息查询

1.查询当前用户
whoami				#查看当前用户

2.查询当前用户信息
id					#查看用户id信息
	-u				#查看用户的用户id
	-g				#查看用户主组id
	-G				#查看用户所有组的id
	-n				#显示名称(搭配以上参数使用)
					#-nu 显示用户名   
                  	#-ng 显示用户主组
                  	#-nG 显示附加组            
举例:查询linuxuser用户信息
# id linuxuser
uid=1002(linuxuser) gid=1005(linuxuser) groups=1005(linuxuser)
uid:用户编号
gid:用户所属的主组的编号
groups:用户的主组以及附属组信息,第一个是主组,后面是附属组或附加组信息

3.切换用户

1.切换超级用户
su - root
#选项:
#- :横杠(减号),代表切换用户的同时,切换目录到用户的家

2.切换普通用户
su - 用户名称

注:
1.从超级用户切换到普通用户,不需要输入普通用户的密码。
2.从普通用户切换到超级用户,需要输入root的密码。
3.从普通用户切换到普通用户,也需要输入后者密码。

又注:
1.在做用户切换时,当使用完毕用户身份用 exit及时退出。
2.不要在一个shell中反复执行su命令,在一个shell中反复执行su命令会导致环境错乱。

4.用户添加和删除

1.用户添加
useradd					username		#用户建立
			-u id		username		#指定用户id
										#uid共有2**16=65535个
                                        #0  		表示超级用户
                                        #1-200		系统预留id
                                        #201-999 	系统用户
                                        #1000-60000	用户级用户   
			-g id		username        #指定主组id
            -G id       username        #指定附加组id
            -d dir      username        #指定用户家目录
            -c word     username        #指定用户备注信息
            -s shell    username        #指定所用的shell
            							#/bin/bash :给人用的,给运维工程师
										#/sbin/nologin :给软件用的,比如mysql
            -n							#取消建立以用户名称为名的群组
Tips: /etc/login.defs记录用户建立的默认规则 

扩展:
-r  指定用户为系统用户,如创建一个系统账号mysql


2.用户删除
userdel		-r			username        #用户删除,-r删除用户系统配置

5.用户信息的修改、

Tips:使用以下命令监控/etc/passwd文件以观察效果。
watch -n 1 “tail -n 4 /etc/passwd /etc/group;echo =======;ls -l /home”

usermod		-l  		newname oldname #更改用户名称
			-u id		username		#更改用户id
            -g id       username    	#更改主组id
            -G id       groupname       #更改用户附加组
            -aG id      groupname     	#添加用户附加组身份
            -c word		username        #更改用户备注
            -d dir		username        #更改用户家目录
            -s shelltype username       #更改用户shell类型
										
			-L			username		#锁定用户,锁定后无法登陆系统
			-U			username		#解锁用户unlock

四.用户组的操作

1./etc/group文件解析

tail -3 /etc/group
	root:x:0:
	student:x:1000:

在/etc/group文件中,其一共拥有三个冒号,共四列:
第1列:用户组的组名称
第2列:用户组的组密码,使用一个x占位符
第2列:用户组的组ID编号,1-999代表系统用户组的组编号,1000以后的代表自定义组的组编号
第4列:用户组内的用户信息(如果一个用户的附属组或附加组为这个组名,则显示在此位置)

2.用户组的添加和删除

1.添加
groupadd				groupname       #建立用户组
			-g id  		groupname       #指定组名称

2.删除
groupdel    			groupname     	#用户组删除

3.用户组的修改

groupmod	-g id       groupname  		#更改用户组id
			-n newname	groupname		#设置新的用户组名称

五.用户认证信息管理

Tips:使用以下命令监控
watch -n 1 “tail -n 1 /etc/shadow;echo “= = =status= = =” ; passwd -S student”

1.查看该用户密码状态
passwd -S student

2.修改密码
passwd daddy						#仅root可执行   
echo "123"|passwd --stdin student	#等同于以上

passwd             					#普通用户改密码 

3.冻结认证与解锁
passwd -l student         			#冻结
passwd -u student					#解锁

4.密码删除
passwd -d student    
注:用户无密码时在登录界面回车即可登录。

5.密码使用天数
#从1970-1-1到今天
passwd -e student					#修改默认使用时间为0
chage -d 0 student
注:使用以上命令后,再次登陆时账号必须修改密码才能登陆

6.密码最短有效期
passwd -n 1 student					#该用户一天内不能改密码
chage -m 1  student  

7.密码最长有效期                
passwd -x 30 student				#该用户30天内必须更改密码否则冻结
chage  -M 30 student  

8.密码过期警告
passwd -w 2 student                 #账号过期前警告(过期前2天警告)
chage  -W 2 student  

9.认证非活跃天数
passwd -i 2 student                 #账号认证最大时间过后还能使用2天
chage  -I 2 student 

10.账号认证到期时间
chage -E "2022-01-01" student       #到2022-01-01这天账号会被冻结

六.用户权力下放

visudo								#编辑/etc/sudoers并提供语法检测

#使用以上命令进入/etc/sudoers文件,按以下方式进行编辑
username	hostname=(newusername)	NOPASSWD:/command,/command1
 用户名      主机名   需要权力的用户   免密     要执行的命令

#权力下放后:
#1.切换到下放到的用户
su - student
#2.使用下放的命令
sudo command
#3.退出用户
exit

七.批量建立用户

(1)先编辑一个文本用户文件。

每一列按照/etc/passwd的格式书写,要注意每个用户的用户名、UID、家目录都不可以相同,其中密码栏可以留做空白。
一个范例文件user.txt内容如下:

user001::600:100:user:/home/user001:/bin/bash
user002::601:100:user:/home/user002:/bin/bash
user003::602:100:user:/home/user003:/bin/bash
user004::603:100:user:/home/user004:/bin/bash
user005::604:100:user:/home/user005:/bin/bash
user006::605:100:user:/home/user006:/bin/bash

(2)以root身份执行命令 /usr/sbin/newusers,从刚创建的用户文件user.txt中导入数据.

创建用户:

newusers < user.txt

执行vi /etc/passwd 检查 /etc/passwd 文件是否已经出现这些用户的数据,并且用户的宿主目录是否已经创建。

(3)执行命令/usr/sbin/pwunconv。

将 /etc/shadow 产生的 shadow 密码解码,然后回写到 /etc/passwd 中,并将/etc/shadow的shadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password 功能。

pwunconv

(4)编辑每个用户的密码对照文件。

格式为:
用户名:密码

示例:

user001:123456
user002:123456
user003:123456
user004:123456
user005:123456
user006:123456

(5)以 root 身份执行命令 /usr/sbin/chpasswd。

创建用户密码,chpasswd 会将经过 /usr/bin/passwd 命令编码过的密码写入 /etc/passwd 的密码栏。

chpasswd < passwd.txt

(6)确定密码经编码写入/etc/passwd的密码栏后。

执行命令 /usr/sbin/pwconv 将密码编码为 shadow password,并将结果写入 /etc/shadow。

pwconv
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值