IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux用户与用户组管理 -> 正文阅读

[系统运维]Linux用户与用户组管理

Linux用户与用户组

Linux系统用户与用户组学习记录

用户概念

用户的基本类别:
	① root超级管理员,在Linux系统中拥有至高无上的权力。
	② 系统用户,CentOS6=> 1 ~ 499,CentOS7=> 1 ~ 999,系统账号默认不允许登录。
	③ 普通用户,大部分是由root管理员创建的,UID的取值范围:CentOS6=> 500 ~ 60000,CentOS7=> 1000 ~ 60000,对系统进行有限的管理维护操作。

用户组概念

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

用户管理

查看用户

语法:
	id 用户名
 # 查看指定用户
[root@localhost ~]# id zhou
 # 查看当前登录用户信息 
[root@localhost ~]# id

创建用户

使用useradd命令可以自动的完成创建用户的信息、基本组、家目录等工作,并在创建的过程中对用户初始信息进行定制。
已创建的用户则需使用chmod命令修改账户信息,passwd命令修改密码信息。

语法:
	useradd [参数] 用户名
参数:
	-D:改变新建用户的预设值
	-c:添加备注文字
	-d:新用户每次登录时所使用的家目录
	-e:用户终止日期,日期格式为YYYY-MM-DD
	-f:用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1
	-g:指定用户对应的用户组
	-G:定义此用户为多个不同组的成员
	-m:用户目录不存在时自动创建目录
	-M:不建立用户家目录,优先与/etc/login.defs文件设定
	-n:取消建立以用户名称为名的群组
	-r:建立系统账号
	-s:Shell文件 指定用户的登录Shell。
	-u:指定用户id
# 创建一个名称为user1的用户
[root@localhost ~]# useradd user1
# 创建指定的用户信息,但不创建家目录,亦不让登录系统
[root@localhost ~]# useradd -Ms /sbin/nologin user2
# 创建指定的用户信息,并自定义UID值
[root@localhost ~]# useradd -u 6688 user3
# 创建指定的用户信息,并追加指定组为该账户的扩展组
[root@localhost ~]# useradd -G user1 user4
# 创建指定的用户信息,并指定过期时间
[root@localhost ~]# useradd -e "2023-01-01" user5

用户密码

用于修改用户的密码值。同时也可以对用户进行锁定等操作,但需要管理员身份才可以执行。

语法:
	passwd [参数] 用户名
参数:
	-d:删除已有密码
	-l:锁定用户的密码值,不允许修改
	-u:解锁用户的密码值,允许修改
	-e:下次登录强制修改密码
	-k:用户在期满后仍然使用
	-S:查看密码状态
# 修改当前登录用户的密码
[root@localhost ~]# passwd
Changing password for user root.
New password: 输入密码
Retype new password: 再次输入密码
passwd: all authentication tokens updated successfully.

# 修改指定用户的密码值
[root@localhost ~]# passwd user3
Changing password for user user3.
New password: 输入密码
BAD PASSWORD: The password fails the dictionary check - it is based on a dictionary word
Retype new password: 再次输入密码
passwd: all authentication tokens updated successfully.
# 锁定指定用户的密码值,不允许其进行修改
[root@localhost ~]# passwd -l user3
# 强制指定的用户在下次登陆时必须重置其密码
[root@localhost ~]# passwd -e user3
# 查看指定用户的密码状态
[root@localhost ~]# passwd -S user3

切换用户

su用于切换用户身份。管理员切换至任意用户身份而无需密码验证,而普通用户切换至任意用户身份均需密码验证。

语法:
	su [参数] 用户名
参数:
		-:完全身份变更
		-c:执行完指定的指令后恢复原来的身份
		-l:变更身份的同时也变更工作目录
		-m:变更身份时不变更工作目录
		-s:指定要执行的shell
# 变更到用户user1,不变更工作目录
[root@localhost ~]# su user1
# 完全变更为user1
[root@localhost ~]# su - user1

删除用户

userdel用于删除用户账户。
Linux系统中一切都是文件,用户信息被保存到了/etc/passwd、/etc/shadow以及/etc/group文件中,
因此使用userdel命令实际就是帮助我们删除了指定用户在上述三个文件中的对应信息。

语法:
	userdel [参数] 用户名
参数:
	-f:强制删除用户账号
	-r:删除用户主目录及其中的任何文件
# 删除指定的用户账户信息
[root@localhost ~]# userdel user5
# 删除指定的用户账户信息及家目录
[root@localhost ~]# userdel -r user4

修改用户账号信息

usermod用于修改用户账号中的各项参数。
语法:
	usermod [参数] 用户名
参数:
	-c<备注>:	修改用户账号的备注文字
	-d<登入目录>:	修改用户登入时的家目录
	-e<有效期限>:	修改账号的有效期限
	-f<缓冲天数>:	修改在密码过期后多少天即关闭该账号
	-g<群组>:	修改用户所属的群组
	-G<群组>:	修改用户所属的附加群组
	-l<账号名称>:	修改用户账号名称
	-L	:锁定用户密码,使密码无效
	-s<shell>:	修改用户登入后所使用的shell
	-u<uid>:	修改用户ID
	-U:	解除密码锁定
# 修改指定用户的UID号码
[root@localhost ~]# usermod -u 6666  user3
# 修改指定用户的名称为user33
[root@localhost ~]# usermod -l user33 user3

用户组管理

分类:
	基本组: 随着用户创建而创建,组名和用户名相同,只能有一个,用户的基本组保存在/etc/passwd中
	附加组:用户加入的其他组,可以有多个。

创建组

groupadd用于创建新的用户组。
每个用户在创建时都有一个与其同名的基本组,后期可以使用groupadd命令创建出新的用户组信息,
让多个用户加入到指定的扩展组中,为后续的工作提供了良好的文档共享环境。

语法:
	groupadd [参数] 组名
参数:
	-g:指定新建组的id
	-r:创建系统组
	-k:覆盖配置文件“/etc/login.defs”
	-o:允许添加组id好不唯一的组
# 创建一个新的用户组
[root@localhost ~]# groupadd group1
# 创建新的用户组时指定组id
[root@localhost ~]# groupadd -g 8888 group2

查看组信息

组信息保存在“/etc/group”中,可以使用grep命令进行直接搜索指定组。
# 查看group1组信息
[root@localhost ~]# grep group1 /etc/group

删除组

groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。
userdel修改系统账户文件,删除与 GROUP 相关的所有项目。
给出的组名必须存在。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

语法:
	groupdel 组名
[root@localhost ~]# groupdel group2

修改组

groupmod命令用于更改群组的识别码或名称时。
语法:
	groupmod [参数] 组名
参数:
	-g:设置新的组id	
	-o:重复使用群组识别码	
	-n:设置新的组名称
# 将组uu修改为group2
[root@localhost ~]# groupmod -n group2 uu

与用户账号有关的系统文件

完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。

与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。

下面分别介绍这些文件的内容。

/etc/passwd

Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。
[root@localhost ~]# tail /etc/passwd
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
www:x:1001:1001::/home/www:/bin/bash
uu:x:1002:1002::/home/uu:/bin/bash
zhou:x:1003:1003::/home/zhou:/bin/bash
rabbitmq:x:987:981:RabbitMQ messaging server:/var/lib/rabbitmq:/bin/bash
mysql:x:1004:1004::/home/mysql:/bin/bash
nginx:x:1005:1005::/home/nginx:/bin/bash
user1:x:1006:1006::/home/user1:/bin/bash
user2:x:1007:1007::/home/user2:/sbin/nologin
user33:x:6666:6688::/home/user3:/bin/bash

/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:

	用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

/etc/shadow

/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。
它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用":"隔开。
[root@localhost ~]# tail /etc/shadow
apache:!!:19191::::::
www:!!:19191:0:99999:7:::
uu:!!:19192:0:99999:7:::
zhou:!!:19192:0:99999:7:::
rabbitmq:!!:19194::::::
mysql:!!:19198:0:99999:7:::
nginx:!!:19212:0:99999:7:::
user1:$6$X3v8uuF4$n3NyB6BwJhQiLJeAQTn3GLyC8dIWPavJP5Bd94wVYf6YZfIbXru6mELrbGnpuUt3QP15ehqZL6qUi9XjyBvu/.:19276:0:99999:7:::
user2:!!:19276:0:99999:7:::
user33:!!$6$qT6zM7TX$JuBdKjiYbyBev7fHnsqzZzURLbxzPUWSNaCwWXQ3xUTNIe1nuTpwpWOkQB1BvuAwCG9jo47GRCSpMCuJalExQ/:0:0:99999:7:::

这些字段是:

	登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

/etc/group

用户组的所有信息都存放在/etc/group文件中
当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。
用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。
[root@localhost ~]# tail /etc/group
www:x:1001:
zhou:x:1003:
rabbitmq:x:981:
mysql:x:1004:
nginx:x:1005:
user1:x:1006:
user2:x:1007:
user3:x:6688:
group1:x:6689:
group2:x:1002:

由冒号(:)隔开若干个字段,这些字段有:

	组名:口令:组标识号:组内用户列表

添加批量用户

  1. 先创建编辑一个文本用户文件
    范例文件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@localhost ~]# newusers < user.txt
  1. 关闭投影密码
[root@localhost ~]# pwunconv
  1. 编辑每个用户的密码对照文件
    格式为:
用户名:密码

实例文件 passwd.txt

user001:123456
user002:123456
user003:123456
user004:123456
user005:123456
user006:123456
  1. 执行密码写入
[root@localhost ~]# chpasswd < passwd.txt
  1. 开启用户的投影密码
[root@localhost ~]# pwconv
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 13:11:55  更:2022-10-17 13:14:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:56:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码