当前位置: 首页 > news >正文

用户/用户组管理

用户管理 *

useradd 命令添加用户,会在/etc/passwd生成用户信息,信息分为7列,被6个冒号隔开

第一列  username (login name)
第二列  密码,但是该列已经被移除,用x表示,密码信息已经存放在了/etc/shadow文件
第三列  用户的UID (user ID),和身份证号差不多,绝对不能重复
第四列  用户所属组的ID
第五列  描述信息,邮箱,电话等
第六列  用户的家目录信息
第七列  用户的登录shell

用户增删改查

1、 创建用户 useradd
$ useradd user1 -u 5000 -d /user1 -s /bin/sh
# 常用参数
-d    新账户的主目录
-s    新账户的登录 shell
-u    新账户的用户 ID
-g    新账户主组的名称或 ID
-G    新账户的附加组列表2、修改用户 usermod
$ usermod user1 -u 5001 -d /home/user1 -s /bin/bash3、 查看user(/etec/passwd)
$ id user14、删除用户 userdel
# 使用userdel命令实际就是删除文件/etc/passwd、/etc/shadow以及/etc/group中对应的信息,userdel默认不会删除用户家目录和邮箱文件(/var/spool/mail/目录下)
$ userdel user1
$ userdel -r userdel  # 彻底删除用户

rhce 考题: 

 用户组管理 * 

用户组分为 primary group(主要组),private group(私有组),attached group(附加组),由于任何用户都必须依赖于用户组才能存在,所以创建用户没有指定用户组(primary group)时,系统会为该用户创建个一同名的组,这个组叫做该用户的private group(私有组),私有组的意义就在于让用户属于一个用户组

文件/etc/group存放户组的信息

$ cat /etc/group
dockerroot:x:993:
influxdb:x:992:每个冒号分割了个内容:
第一列表示组名
第二列表示组密码,x表示密码存放在/etc/gshadows⽂件⾥
第三列表示组ID
第四列表示"组成员"

用户组增删改查

①⽤户组的添加
$ groupadd group1②⽤户组的删除
$ groupdel group1③⽤户组的查看
$ grep group1 /etc/group
group1:x:1001:⑤用户组的修改
$ groupmod group1 -g 1002
$ grep group1 /etc/group
group1:x:1002:

用户与用户组关联

/etc/passwd 的第四列GID表示该用户属于的primary group(主要组),一个用户只可以属于一个primarygroup,但是可以同时属于多个attached group

# 创建用户指定 primary group 和 attached group
$ useradd user1 -g group1 -G group2
$ id user1
uid=1001(user1) gid=1002(group1) groups=1002(group1),1003(group2)# 修改用户 attached group
$ usermod user1 -G group3
$ id user1
uid=1001(user1) gid=1002(group1) groups=1002(group1),1004(group3)# 添加用户 attached group
$ usermod user1 -aG group2
$ id user1
uid=1001(user1) gid=1002(group1) groups=1002(group1),1003(group2),1004(group3)

用户密码管理passwd/chage *

/etc/shadow存放的是密码信息,每列密码信息都被冒号分割开来

# cat /etc/shadow
user2:$6$90Q11.N4g4t5X07I4hqp/:19485:0:99999:7:::user1:!!:19487:0:99999:7:::第1列  username
第2列  密码(非明文)
第3列  上次修改密码的时间
第4列  密码最小有效期(0 -> 无限次修改 1 -> 使用1天后才能修改)
第5列  密码的最大有效期(默认是99999,表示密码99999天就会失效)
第6列  密码到期前提前多少天提示
第7列  密码到期后宽限日期
第8列  表示账号失效日期
第9列  保留

passwd 命令 (-d、-e、-l、-u )

# 修改用户密码(root可以修改其他普通用户密码,普通用户只能修改自己的密码)
$ passwd user1   
$ grep user1 /etc/shadow 
user1:$3Gan/Lmj9yT7.wfbyWHHUsDYbljfN91:19487:0:99999:7:::# -d 删除用户密码
$ passwd -d user1
$ grep user1 /etc/shadow 
user1::19487:0:99999:7:::# -e 设置密码过期,表示该⽤户下次登录必须修改密码
$ passwd -e user1# -l 锁定用户密码,当账号被锁定了,除了root之外,任何其它⽤户不能切换到被锁定的账号
# -u 解锁
$ passwd -l user1
$ passwd -u user1# 非交付式修改用户密码方式 
$ echo 123 | passwd --stdin user1

chage 命令

常用参数:
-d  设置最近一次密码
-E  帐户过期时间
-I  过期I天数后,设定密码为失效状态
-m  两次改变密码之间相距的最小天数
-M  两次改变密码之间相距的最大天数
-W  密码过期提前通知天数$ chage -d 1300 -m 2 -M 20 -W 10 -I 4 -E 2023-5-20 user1

用户组密码管理

对于任何一个用户来说,创建的文件,默认的拥有者就是该用户,默认的所属组是该用户的primary group,newgrp groupname,能让用户临时的切换到另外一个组,那么切换成功之后,该用户创建的文件就都属于切换后的组:

$ id
uid=1001(user1) gid=1002(group1) groups=1002(group1),1003(group2)
$ touch a.txt
$ newgrp group2
$ touch b.txt
$ ls -l
-rw-r--r-- 1 user1 group1 0 May 11 00:59 a.txt
-rw-r--r-- 1 user1 group2 0 May 11 00:59 b.txt

gpasswd groupname 创建用户组密码,组密码的作用是让那些不属于该组的用户,可以切换到该组的一种方式,只要提供正确的组密码,即可切换成功

$ gpasswd group2
id 
uid=5011(user2) gid=5011(user2) groups=5011(user2)
$ touch 1.txt
$ newgrp group2
Password: 
$ touch 2.txt
$ ls -l
-rw-rw-r-- 1 user2 user2  0 May 11 01:07 1.txt
-rw-r--r-- 1 user2 group2 0 May 11 01:07 2.txt

相关文章:

用户/用户组管理

用户管理 * useradd 命令添加用户,会在/etc/passwd生成用户信息,信息分为7列,被6个冒号隔开 第一列 username (login name) 第二列 密码,但是该列已经被移除,用x表示,密码信息已经存放在了/etc/shadow文…...

如何进行TCP抓包调试?

网络调试工具——Wireshark Wireshark 是世界上应用最广泛的网络协议分析器,它让我们在微观层面上看到整个网络正在发生的事情。 Wireshark 本身是一个开源项目,所以也得到了很多志愿者的支持。同时,Wireshark 具有丰富的功能集,…...

分享一个国内可用的ChatGPT网站,免费无限制,支持AI绘画 - AI 百晓生

背景 ChatGPT作为一种基于人工智能技术的自然语言处理工具,近期的热度直接沸腾🌋。 作为一个AI爱好者,翻遍了各大基于ChatGPT的网站,终于找到一个免费!免登陆!手机电脑通用!国内可直接对话的C…...

API安全性的要素与开发人员必修课测试

一、API安全性的要素主要包括以下几点: 1.身份验证和访问控制:API应该通过身份验证来验证请求的源,确保只有授权的用户或应用程序才能访问API。这可以通过使用API密钥、访问令牌、OAuth令牌或其他身份验证机制实现。 2.数据加密:A…...

leetcode 651. 4键键盘

651. 4键键盘 中等 102 company 微软 Microsoft company 谷歌 Google company 亚马逊 假设你有一个特殊的键盘包含下面的按键: A:在屏幕上打印一个 ‘A’。Ctrl-A:选中整个屏幕。Ctrl-C:复制选中区域到缓冲区。Ctrl-V&#xff1a…...

Python垃圾回收机制

Python 运行过程中会不停的创建各种变量,而这些变量是需要存储在内存中的,随着程序的不断运行,变量数量越来越多,所占用的空间势必越来越大,如果对变量所占用的内存空间管理不当的话,那么肯定会出现 out of…...

Grafana插件安装并接入zabbix数据源(03)

一、在线安装插件 如果不指定插件安装位置,则默认安装位置为/var/lib/grafana/plugins;插件安装后需要重启grafana-server 安装zabbix插件alexanderzobnin-zabbix-app # grafana-cli plugins install alexanderzobnin-zabbix-app 使用--pluginsDir指定安装路径 # grafana…...

简述 JavaScript 中 prototype

简述 JavaScript 中 prototype 这篇笔记主要捋一下这么几个概念: JS 的继承构造函数new 的作用及简易实现__proto__ & prototype同样的方法,class 和 prototype 中分别是怎么实现的 基础概念 JS 是通过 prototype chaining 实现继承的语言&#…...

一觉醒来Chat gpt就被淘汰了

目录 什么是Auto GPT? 与其他语言生成模型相比,Auto GPT具有以下优点 Auto GPT的能力 Auto GPT的能力非常强大,它可以应用于各种文本生成场景,包括但不限于以下几个方面 Auto GPT的历史 马斯克说:“ChatGPT 好得吓…...

13款JavaScript图像处理库,建议收藏备用

pica: 一个在浏览器中调整图像大小,而不会出现像素失真,处理速度非常快的图片处理库,仓库地址https://github.com/nodeca/picahtml2canvas: 强大的使用js开发的浏览器网页截图工具,仓库地址https://github.…...

uniapp m3u8格式视频加载

uniapp一:mui-player:三方 h5 web app uniapp 使用 mui-player 插件播放 m3u8/flv 视频流_翘翘红的博客-CSDN博客 uniapp 开发的h5项目,需要播放m3u8/flv后缀的视频,网上有很多视频插件,但是样式和效果不尽如人意&am…...

iOS描述文件(.mobileprovision)一键申请

iOS描述文件(.mobileprovision)一键申请 在主界面上点击描述文件按钮。 新建ios描述文件 然后点击新建,然后输入描述文件名称,描述文件名称字符和数字,自己好辨识就可以。然后选择描述文件类型,再选择bundle ID,如果…...

进行性能压力测试的原因、目的和好处

性能压力测试是指在模拟高负载、高并发情况下对软件系统进行测试,以衡量系统在实际使用过程中的性能表现。这些测试可以为生产环境中的应用程序提供关键数据,并帮助开发人员从根本上了解系统的实际性能。在本文中,我们将探讨进行性能压力测试…...

【计算机视觉】如何利用 CLIP 做简单的人脸任务?(含源代码)

文章目录 一、数据集介绍二、源代码 结果三、代码逐行解读 一、数据集介绍 CELEBA 数据集(CelebFaces Attributes Dataset)是一个大规模的人脸图像数据集,旨在用于训练和评估人脸相关的计算机视觉模型。该数据集由众多名人的脸部图像组成&a…...

基于显扬科技3D视觉相机的医疗试管分拣系统

行业现状: 医疗试管分拣是医疗行业中的一个重要环节,指将医疗实验室或生物技术研究中的试管按照一定的规则进行分拣,并对试管的类型、位置、数量等信息进行识别和管理。 随着医疗技术的不断发展和诊断治疗的精细化,医疗试管分拣…...

编译zlib

zlib被设计为一个免费的,通用的,法律上不受限制的-即不受任何专利保护的无损数据压缩库,几乎可以在任何计算机硬件和操作系统上使用。 官网:http://www.zlib.net/ 下载zlib源码:http://www.zlib.net/zlib1213.zip 备用地址&#x…...

如何让“ChatGPT自己写出好的Prompt的“脚本在这里

写个好的Prompt太费力了 在网上,你可能会看到很多人告诉你如何写Prompt,需要遵循各种规则,扮演不同的角色,任务明确、要求详细,还需要不断迭代优化。写一个出色的Prompt需要投入大量的时间和精力。甚至有一些公开的Pr…...

菜单选择shell

[rootes3 data]# vi action.sh #!/bin/bash . /etc/init.d/functionsecho -en "\E[$[RANDOM%731];1m"cat <<EOF请选择&#xff1a;1) 备份数据库2)清理日志3)软件升级4)软件回滚5)删库跑路EOFecho -en \E[0mread -p "请选择上面的项对应的数字1-5&#xf…...

Redis高可用性详解

目录 ​编辑 高可用性&#xff1a; 主从复制&#xff08;Master-Slave Replication&#xff09;&#xff1a; 主从复制的一般工作流程&#xff1a; 哨兵模式&#xff08;Sentinel Mode&#xff09;&#xff1a; 哨兵模式的一般工作流程&#xff1a; 集群模式&#xff08…...

MySQL(1) ---- 数据库介绍与MySQL概述

介绍 1、什么是数据库&#xff1f; 数据库&#xff1a;DateBase&#xff08;DB&#xff09;&#xff0c;是存储和管理数据的仓库。数据库管理系统&#xff1a;DataBase Management System&#xff08;DBMS&#xff09;&#xff0c;操纵和管理数据库的大型软件。SQL&#xff1…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...