Linux学习笔记——用户管理
一、用户管理命令
useradd #用户增加命令
usermod #用户修改命令
passwd #密码修改命令
userdel #用户删除命令
su #用户提权命令
1、useradd命令(加用户):
创建并设置用户信息,使用useradd命令可以自动完成用户信息,基本组,家目录等创建工作,并在创建过程中对用户初始信息进行定制。
语法格式:useradd 参数 用户名
实例:
useradd test1 #创建指定用户信息
user -M -s /sbin/nologin test2 #创建指定用户信息,但不创建家目录,也不能登录。
useradd -u 6688 test3 #创建指定用户信息,并自定义UID值
useradd -G root test4 #创建指定用户信息,并追加指定组为该用户
useradd -e "2025/06/01" test5 #创建一个临时用户
当系统没有给新建的用户添加密码时,只能通过root用户登陆,同为用户需要密码,而新建的用户没有设置密码所以不能登陆。
2、passwd命令(加密码):
passwd命令来自password的缩写,其功能是修改用户的密码值。
同时也可以对用户进行锁定等操作,但需要管理员身份才能执行。
当使用useradd命令添加用户之后,默认给用户不能登陆,因为没有设置密码值。
只有设置了密码之后,才可以登陆。
语法格式:passwd 参数 用户名
passwd #修改当前用户密码
passwd test1 #修改指定用户的密码(需要root管理员)
passwd -l test1 #锁定指定用户的密码值,不允许其修改;
passwd -u test1 #解锁指定用户的密码值,允许其修改;
passwd -e test2 #在下次登陆时强制修改密码
passwd -d test2 #删除指定用户的密码值
passwd -S test3 #查看指定用户的密码状态
扩展:重置root密码的方法:
1、首先重启系统,然后快速按下e键进入GRUB界面,
2、然后在最后一行之前输入rd.break,如图:
3、输入好后,按ctrl+x来重启系统。
重启系统后,按任意键继续,然后在第一个命令提示符下输入
mount -o remount,rw /sysroot #重新挂载文件系统
输入好后回车,在输入
mount |grep sysroot #判断成功与否
然后回车。
然后在命令提示符下输入如下命令:
chroot /sysroot/ #改变系统目录为临时目录
echo 123 |passwd --stdin root #修改root密码为123
touch /.autorelabel #重新标记SElinux环境值文件
然后输入两次exit来退出。
然后系统就会自动重启。密码修改成功。
Linux救援模式===》单用户模式
3、usermod命令:
usermod命令(user modify),其功能是修改用户信息中的各项参数,在创建用户后发现信息错误,可以不用删除,用usermod命令直接修改用户信息,并且参数会立即生效。
语法格式:usermod 参数 用户名
实例:
usermod -d /home/testA test1 #修改指定用户的家目录路径,不能有用户正在使用该账号。
usermod -u 6666 test1 #修改用户ID为6666
查用户ID:vim /etc/passwd
修改前:
修改后:
对于用户来说该账号的名称为:test1,而对于系统来说该账号的名称为6666
usermod -l newname test1 #修改指定用户名称为newname
在/etc/passwd里面修改成功
,而用户的家目录没有发生变化。
usermod -L test1 #锁定指定的用户,临时不允许登陆系统,使用xshell登陆不上去
usermod -U test1 #解锁指定用户,再次允许登陆系统
4、userdel命令
(user delete),功能为删除用户信息。在Linux系统中一切都是文件,用户信息被存在/etc/passwd和/etc/shadow以及/etc/group文件中,
故使用userdel命令实际上是删除指定用户在上述三个文件中的对应信息。
语法格式:userdel 参数 用户名
实例:
userdel test1 #删除指定用户
userdel -r test2 #删除用户信息以及家目录,何其所有子文件
扩展:将用户从用户组中删除:gpasswd -d <用户名称> <用户组名>
5、su命令
su命令来自于switch user的缩写,其功能是切换用户身份。
将管理员切换至任意用户身份无序进行密码认证,而将普通用户切换到任意用户身份均需密码验证。另外,添加的单个减号(-)参数表示完全的身份变更,不保留之前的用户任何的环境变量信息。
语法格式:su 参数 用户名
实例:
su test 与 su - test 的区别:
解决问题:XXX不在sudoers文件中,此事将被报告
修改/etc/sudoer即可:
su root
chmod 777 /etc/sudoers
vim /etc/sudoers
在root那行添加:XXX ALL=(ALL) ALL
保存退出
chmod 440 /etc/sudoers
再返回自己的是身份。
之后再次执行。
二、用户组管理命令
groupadd #用户组添加命令
groupmod #用户组修改命令
groupwd #用户组密码设置命令
groupdel #用户组删除命令
1、groupadd命令:
groupadd命令的功能是创建新的用户组,每个用户在创建的时候都有一个与其同名的基本组,后期可以使用groupadd命令创建新的用户组信息,让更多的用户加入到指定的扩展组。
语法格式:group 参数 用户组
实例:
groupadd newgroup1 #创建一个新的用户组
groupadd -g 6688 newgroup2 #创建一个新的用户组,并指定用户组ID
groupadd -r newgroup3 #创建新的用户组,设定为系统工作组
#1000以内的编号是系统组,1000普通用户组
添加用户组以后:/etc/group会发生变化。
扩展:
新建用户将其加入到指定的用户组之中,作为其主用户组(每个用户有且仅有一个用户组)
useradd -g <用户组名> <用户名>
useradd -g xxx yyy #-g是加入主要组
或新建用户并将其加入指定附属组,一个用户可以有多个附属组,多个附属组名称用逗号隔开。
useradd -G <用户组名> <用户名>
useradd -G xxx yyy #G是加入附属组
1、主要群组:每个文件都必须有一个组的所有者,因此必须有一个与每个用户相关的默认组。这个默认组成为新建文件的组所有者,被称为用户的主要群组。用户的主要群组再passwd中的第四个字段中定义。
2、次要群组:除了主要群组,用户也可以根据需要再隶属于其他的群组,这些群组称为次要群组,再group文件中第四个字段中定义。
#将已有的用户添加到指定的用户组
#将已有的用户添加到指定的用户组,作为其附属用户组
#-a代表append和-G一起使用,将用户添加到新用户组中而不避开原有的其他用户组。
usermod -g <新用户组名> <旧用户组名>
#将已有用户的主用户组修改为其他新的用户组
usermod -g <新用户组名> <旧用户组名>
权限中第二个为组权限,对于同组的人来说如果权限开放,可以互相进入对方的~(home)
2、groupmod命令:
“group modify”,作用是用于更改群组属性。linux系统下的群组信息一般不建议修改,因为涉及已加入的用户的归属问题,尤其是群组名称,组GID,一定要确认好后再操作。
语法格式:groupmod 参数 群族名
实例:
groupmod -n newgroupA oldgroupB #更改指定的用户组名称
groupmod -g 8888 newgroupA #更改指定用户组识别码
3、groupdel命令:
delete a group 其功能是用于删除用户组,Linux系统中的用户组信息被保存在/etc/group和/etc/gshadow中,手动删除对应的信息即可,亦可以使用groupdel命令删除。
语法格式:groupdel [参数] 群组名
常用参数:
-f 强制删除
-h 显示帮助信息
实例:
groupdel newgroup #删除指定名称的用户组
groupdel -f newgroup #强制删除指定名称的用户组
三、用户配置文件
在Linux系统中,用户名,密码,用户组,和用户组密码都是保存在不同的配置文件中。
/etc/passwd 用于保存用户的账号文件
/etc/shadow 用于保存用户的密码文件 ===>useradd,passwd
/etc/group 用于保存用户组的文件
/etc/gshadow 用于保存用户组密码的文件 ===>groupadd,gpasswd
/etc/skel 保存用户家目录隐藏文件
/etc/default/useradd 用于定义添加用户的信息文件 ===>用户配置文件
相关文章:
Linux学习笔记——用户管理
一、用户管理命令 useradd #用户增加命令 usermod #用户修改命令 passwd #密码修改命令 userdel #用户删除命令 su #用户提权命令 1、useradd命令(加用户): 创建并设置用户信息,使用us…...
Baklib揭示内容中台与人工智能技术的创新协同效应
内容概要 在当今信息爆炸的时代,内容的高效生产与分发已成为各行业竞争的关键。内容中台与人工智能技术的结合,为企业提供了一种新颖的解决方案,使得内容创造的流程更加智能化和高效化。 内容中台作为信息流动的核心,能够集中管…...
FreeRTOS从入门到精通 第十四章(队列集)
参考教程:【正点原子】手把手教你学FreeRTOS实时系统_哔哩哔哩_bilibili 一、队列集简介 1、队列集概述 (1)一个队列只允许任务间传递的消息为同一种数据类型,如果需要在任务间传递不同数据类型的消息时,那么就可以…...
Python实现U盘数据自动拷贝
功能:当电脑上有U盘插入时,自动复制U盘内的所有内容 主要特点: 1、使用PyQt5创建图形界面,但默认隐藏 2、通过CtrlAltU组合键可以显示/隐藏界面 3、自动添加到Windows启动项 4、监控USB设备插入 5、按修改时间排序复制文件 6、静…...
Vue.js 什么是 Composition API?
Vue.js 什么是 Composition API? 今天我们来聊聊 Vue 3 引入的一个重要特性:组合式 API(Composition API)。如果你曾在开发复杂的 Vue 组件时感到代码难以维护,那么组合式 API 可能正是你需要的工具。 什么是组合式 …...
关于产品和技术架构的思索
技术架构或者设计应该和产品设计分离,但是又不应该和产品架构独立。 听起来非常的绕并且难以理解。 下面我们用一个例子来解读这两者的关系 产品(族谱图) 如果把人类当作产品,那设计师应该是按照上面设计的(当然是正常的伦理道德)…...
Python设计模式 - 组合模式
定义 组合模式(Composite Pattern) 是一种结构型设计模式,主要意图是将对象组织成树形结构以表示"部分-整体"的层次结构。这种模式能够使客户端统一对待单个对象和组合对象,从而简化了客户端代码。 组合模式有透明组合…...
蓝桥杯模拟算法:蛇形方阵
P5731 【深基5.习6】蛇形方阵 - 洛谷 | 计算机科学教育新生态 我们只要定义两个方向向量数组,这种问题就可以迎刃而解了 比如我们是4的话,我们从左向右开始存,1,2,3,4 到5的时候y就大于4了就是越界了&…...
24_游戏启动逻辑梳理总结
首先这个项目从游戏根入口GameRoot.cs的初始化开始 分为 服务层初始化Svc.cs 与 业务系统层初始化Sys.cs 而服务层 分为 资源加载服务层ResSvc.cs 与 音乐播放服务层AudioSvc.cs 而在 资源加载服务层ResSvc.cs中 初始化了 名字的 配置文件 而音乐播放服务层AudioSvc.cs 暂时没…...
TikTok 推出了一款 IDE,用于快速构建 AI 应用
字节跳动(TikTok 的母公司)刚刚推出了一款名为 Trae 的新集成开发环境(IDE)。 Trae 基于 Visual Studio Code(VS Code)构建,继承了这个熟悉的平台,并加入了 AI 工具,帮助开发者更快、更轻松地构建应用——有时甚至无需编写任何代码。 如果你之前使用过 Cursor AI,T…...
如何运用python爬虫爬取百度贴吧动态加载的图片?
动态加载的图片通常是在页面加载后通过JavaScript异步请求获取的,而requests和BeautifulSoup只能获取页面的初始HTML内容,无法执行JavaScript代码。 要处理动态加载的图片,可以使用以下方法: 1. 使用Selenium Selenium是一个用…...
在Rust应用中访问.ini格式的配置文件
在Rust应用中访问.ini格式的配置文件,你可以使用第三方库,比如 ini 或 config. 下面是一个使用 ini 库的示例,该库允许你读取和解析.ini文件。 使用 ini 库 添加依赖 首先,你需要在你的 Cargo.toml 文件中添加 ini 库的依赖&am…...
Van-Nav:新年,将自己学习的项目地址统一整理搭建自己的私人导航站,供自己后续查阅使用,做技术的同学应该都有一个自己网站的梦想
嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 Van-Nav是一个基于Vue.js开发的导航组件库,它提供了多种预设的样式和灵活的配置选项,使得开发者可以轻松地定制出符合项目需求…...
【某大厂一面】Map和Set区别
在 Java 中,Map 和 Set 都是集合框架中的重要接口,它们具有不同的特性和用途。虽然它们都用于存储一组元素,但它们之间有一些重要的区别。下面将详细介绍它们之间的差异。 1. Set 和 Map 的基本定义 Set 是一个集合接口,它用于存…...
Vue.js组件开发-使用Vue3如何实现上传word作为打印模版
使用Vue 3实现Word模板上传、解析和打印功能的完整解决方案: 一、实现步骤 安装依赖创建文件上传组件实现.docx文件解析创建打印预览组件实现打印功能样式优化 二、完整代码实现 1. 安装依赖 npm install mammoth axios2. 创建文件上传组件(FileUploa…...
Consul持久化配置报错1067---consul_start
报错都是文件写的有问题或者格式问题,直接复制我的这个改改地址就行 先创建文本文件consul_start.txt--->再复制代码保存---->再把.txt改成.bat 持久化存储的地址在:mydata 注:D:\consul\consul_1.20.2_windows_386改成自己consul的…...
动态规划DP 最长上升子序列模型 总览
最长上升子序列模型 最长上升子序列 怪盗基德的滑翔伞...
如何解压7z文件?8种方法(Win/Mac/手机/网页端)
7z 文件是一种高效的压缩文件格式,由 7 - Zip 软件开发者所采用。它运用独特的压缩算法,能显著缩小文件体积,便于存储与传输各类数据,像软件安装包、大型资料集等。但要使用其中内容,就必须解压,因为处于压…...
2023年吉林省职业院校技能大赛网络系统管理样题-网络配置(华三代码)
目录 附录1:拓扑图 附录2:地址规划表 1.S1 2.S3 3.S4 4.S5 5.S7 6.S8 7.S9 8.R1 9.R2 10.R3 11.EG1 12.EG2 13.AC1 14.AC2 附录1:拓扑图 编号 型号...
Flutter使用Flavor实现切换环境和多渠道打包
在Android开发中通常我们使用flavor进行多渠道打包,flutter开发中同样有这种方式,不过需要在原生中配置 具体方案其实flutter官网个了相关示例(https://docs.flutter.dev/deployment/flavors),我这里记录一下自己的操作 Android …...
【linux三剑客】grep练习题
题目 进入/lianxi目录,复制/etc/passwd到当前目录下,然后对passwd进行操作查找出当前passwd文件中以ftp或者mail开头的行,在屏幕上输出。查找出当前passwd文件中有没有以r、m、f开头的行,在屏幕上输出。查找出当前passwd文件中以…...
冬天适合养什么鱼?
各位鱼友们,冬天来了,是不是还在为养什么鱼而烦恼?别担心,今天就来给大家好好推荐一些适合冬天养的鱼,让你的水族箱在寒冷的冬天也能生机勃勃! 一、金鱼:冬日里的“小暖男” 金鱼绝对是冬季养鱼…...
Effective C++ 规则43:学习处理模板化基类内的名称
1、背景 在 C 中,模板化基类为我们提供了强大的灵活性。然而,模板化基类的名称查找却经常会引发困惑,甚至导致编译错误。这是因为模板的名称查找规则与普通类不同。在普通类中,派生类可以直接访问基类的成员变量和成员函数&#…...
DeepSeek R1 linux云部署
云平台:AutoDL 模型加载工具:Ollama 参考:https://github.com/ollama/ollama/blob/main/docs/linux.md 下载Ollama 服务器上下载ollama比较慢,因此我使用浏览器先下载到本地电脑上。 https://ollama.com/download/ollama-linux…...
混合专家模型MoE的全面详解
什么是混合专家(MoE)? 混合专家(MoE)是一种利用多个不同的子模型(或称为“专家”)来提升LLM质量的技术。 MoE的两个主要组成部分是: 专家:每个前馈神经网络(…...
vue3相关知识点
title: vue_1 date: 2025-01-28 12:00:00 tags:- 前端 categories:- 前端vue3 Webpack ~ vite vue3是基于vite创建的 vite 更快一点 一些准备工作 准备后如图所示 插件 Main.ts // 引入createApp用于创建应用 import {createApp} from vue // 引入App根组件 import App f…...
【2025美赛D题】为更美好的城市绘制路线图建模|建模过程+完整代码论文全解全析
你是否在寻找数学建模比赛的突破点?数学建模进阶思路! 作为经验丰富的美赛O奖、国赛国一的数学建模团队,我们将为你带来本次数学建模竞赛的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解析,…...
games101-(5/6)
光栅化 投影完成之后,视图区域被确定在从[-1,1]的单位矩阵中,下一步就是光栅化 长宽比:ratio 垂直的可视角度:fild-of-view 可以看到的y 轴的范围,角度越小 越接近正交投影 屏幕坐标系 、 将多边形转化成像素 显示…...
UE5.3 C++ CDO的初步理解
一.UObject UObject是所有对象的基类,往上还有UObjectBaseUtility。 注释:所有虚幻引擎对象的基类。对象的类型由基于 UClass 类来定义。 这为创建和使用UObject的对象提供了 函数,并且提供了应在子类中重写的虚函数。 /** * The base cla…...
前端——js高级25.1.27
复习:对象 问题一: 多个数据的封装提 一个对象对应现实中的一个事物 问题二: 统一管理多个数据 问题三: 属性:组成:属性名属性值 (属性名为字符串,属性值任意) 方…...
Python 魔术方法
1. 什么是魔术方法 在 Python 中,魔术方法(Magic Methods),又叫 特殊方法 或 双下方法,是以两个下划线(__)开头和结尾的方法。 这些方法为 Python 提供了对类和对象的特殊操作功能,…...
websocket webworker教程及应用
WebSocket 和 Web Workers 是两种不同的 Web 技术,分别用于实现实时通信和后台线程处理。以下是它们的简要教程: WebSocket 教程 1. 什么是 WebSocket? WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它允许服务器主动向客户端推…...
qwen2.5-vl:阿里开源超强多模态大模型(包含使用方法、微调方法介绍)
1.简介 在 Qwen2-VL 发布后的五个月里,众多开发者基于该视觉语言模型开发了新的模型,并向 Qwen 团队提供了极具价值的反馈。在此期间,Qwen 团队始终致力于打造更具实用性的视觉语言模型。今天,Qwen 家族的最新成员——Qwen2.5-VL…...
PaddleSeg 从配置文件和模型 URL 自动化运行预测任务
git clone https://github.com/PaddlePaddle/PaddleSeg.git# 在ipynb里面运行 cd PaddleSegimport sys sys.path.append(/home/aistudio/work/PaddleSeg)import os# 配置文件夹路径 folder_path "/home/aistudio/work/PaddleSeg/configs"# 遍历文件夹,寻…...
Java实战项目-基于 springboot 的校园选课小程序(附源码,部署,文档)
Java 基于 springboot 的校园选课小程序 博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战*✌ 🍅文末获取源码联系🍅 👇&…...
网络工程师 (7)进程管理
一、进程相关的概念 (一)定义 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,也是操作系统结构的基础。进程是程序的一次执行实例,具有动…...
大屏 UI 设计风格的未来趋势
在科技飞速革新的时代,大屏设备的应用领域不断拓展,从城市的智能交通指挥中心,到商场的互动广告大屏,再到家庭的超大尺寸智能电视,大屏已然成为信息展示与交互的关键载体。大屏 UI 设计风格也随之不断演变,…...
Kmesh v1.0 正式发布
2025 年 1 月 23 日,Kmesh 团队正式发布了 Kmesh v1.0235。Kmesh 作为一款开源的服务网格解决方案,v1.0 版本在网络流量管理领域引入了多项重磅特性2。具体如下134: IPsec 加密通信:引入 IPsec 加密协议,将节点间流量加…...
低代码系统-产品架构案例介绍、轻流(九)
轻流低代码产品定位为零代码产品,试图通过搭建来降低企业成本,提升业务上线效率。 依旧是从下至上,从左至右的顺序 名词概述运维层底层系统运维层,例如上线、部署等基础服务体系内置的系统能力,发消息、组织和权限是必…...
深入理解动态规划(dp)--(提前要对dfs有了解)
前言:对于动态规划:该算法思维是在dfs基础上演化发展来的,所以我不想讲的是看到一个题怎样直接用动态规划来解决,而是说先用dfs搜索,一步步优化,这个过程叫做动态规划。(该文章教你怎样一步步的…...
C++传送锚点的内存寻址:内存管理
文章目录 1.C/C内存分布回顾2.C内存管理2.1 内存申请2.2 operator new与operator delete函数2.3 定位new表达式 3.关于内存管理的常见知识点3.1 malloc/free和new/delete的区别3.2 内存泄漏 希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力! 继C语…...
webAPI -DOM 相关知识点总结(非常细)
title: WebAPI语法 date: 2025-01-28 12:00:00 tags:- 前端 categories:- 前端WEB API 了解DOM的结构并掌握其基本的操作,体验 DOM 在开发中的作用 API简介 就是使用js来操作html和浏览器 什么是DOM? 就是一个文档对象模型,是用来呈现预计于任意htm…...
Deepseek的RL算法GRPO解读
在本文中,我们将深入探讨Deepseek采用的策略优化方法GRPO,并顺带介绍一些强化学习(Reinforcement Learning, RL)的基础知识,包括PPO等关键概念。 策略函数(policy) 在强化学习中, a…...
设计模式的艺术-策略模式
行为型模式的名称、定义、学习难度和使用频率如下表所示: 1.如何理解策略模式 在策略模式中,可以定义一些独立的类来封装不同的算法,每个类封装一种具体的算法。在这里,每个封装算法的类都可以称之为一种策略(Strategy…...
MyBatis 写法
MyBatis 高效使用技巧 常见 MyBatis 使用技巧,这些技巧有助于简化数据库操作,提高开发效率,并增强系统的性能。 1. 动态 SQL 动态 SQL 让开发者能够依据参数灵活地构建 SQL 语句,避免了手动拼接字符串带来的复杂性和错误风险。…...
Git图形化工具【lazygit】
简要介绍一下偶然发现的Git图形化工具——「lazygit」 概述 Lazygit 是一个用 Go 语言编写的 Git 命令行界面(TUI)工具,它让 Git 操作变得更加直观和高效。 Github地址:https://github.com/jesseduffield/lazygit 主要特点 主要…...
K8s运维管理平台 - xkube体验:功能较多
目录 简介Lic安装1、需要手动安装MySQL,**建库**2、启动命令3、[ERROR] GetNodeMetric Fail:the server is currently unable to handle the request (get nodes.metrics.k8s.io qfusion-1) 使用总结优点优化 补充1:layui、layuimini和beego的详细介绍1.…...
5.3.1 软件设计的基本任务
文章目录 软件设计解决的问题概要设计基本任务详细设计基本任务 软件设计解决的问题 需求分析解决“做什么”的问题,软件设计解决“如何做”的问题。软件设计分为概要设计、详细设计两块。概要设计是设计软件和数据的总体框架,比详细设计的颗粒度更大。详…...
Go学习:字符、字符串需注意的点
Go语言与C/C语言编程有很多相似之处,但是Go语言中在声明一个字符时,数据类型与其他语言声明一个字符数据时有一点不同之处。通常,字符的数据类型为 char,例如 :声明一个字符 (字符名称为 ch) 的语句格式为 char ch&am…...
LabVIEW无线齿轮监测系统
本案例介绍了基于LabVIEW的无线齿轮监测系统设计。该系统利用LabVIEW编程语言和改进的天牛须算法优化支持向量机,实现了无线齿轮故障监测。通过LabVIEW软件和相关硬件,可以实现对齿轮箱振动信号的采集、传输和故障识别,集远程采集、数据库存储…...