当前位置: 首页 > 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…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者&#xff1a;来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布&#xff0c;Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明&#xff0c;Elastic 作为 …...

【深度学习新浪潮】什么是credit assignment problem?

Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...