Linux用户管理命令和用户组管理命令

一、用户管理命令

1.1、adduser 添加新用户

1、基本语法 

adduser 用户名   (功能描述:添加新用户) 

应用场景1:企业开发,多人协同(也会有多人使用相同的一个低权限用户)。 
应用场景2:框架协同 gitlab  mysql  redis  

2、案例实操(添加一个用户) 

sudo adduser tangseng 

按提示输入密码、用户信息即可。

1.2、passwd设置或更改用户密码

1、基本语法 

passwd 用户名 (功能描述:设置用户密码) 

2、案例实操 (更改用户的密码) 

sudo passwd tangseng 

1.3、 id 查看用户是否存在

1、基本语法 

id 用户名 

 2、案例实操 (查看用户是否存在)

id tangseng

1.4、cat /etc/passwd 查看创建了哪些用户 

1、基本语法 

cat  /etc/passwd 

 su 切换用户 

1.5、su: swith user 切换用户 

1、基本语法 

su 用户名称   (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量) 
su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限) 

2、案例实操 (切换用户) 

su tangseng 
echo $PATH 
exit
su - tangseng
echo $PATH 

1.6、userdel 删除用户

1、基本语法 

(1)userdel  用户名  (功能描述:删除用户但保存用户主目录) 
(2)userdel -r 用户名 (功能描述:用户和用户主目录,都删除)

2、选项说明 

功能选项
-r删除用户的同时,删除与用户相关的所有文件

3、案例实操 

(1)删除用户但保存用户主目录 

sudo userdel tangseng

(2)删除用户和用户主目录,都删除

sudo adduser zhubajie
ll /home/ 
sudo userdel -r zhubajie 
ll /home/ 

1.7、 usermod 修改用户

1、基本语法 

usermod -l 新用户名 老用户名 
usermod -d /home/新用户名 -m新用户名 

2、选项说明 

选项 功能 -l 改变用户名 -d 修改家目录

3、案例实操 

 (1)改变用户名 

sudo usermod -l meihouwang sunwukong 

(2)更改家目录 

sudo usermod -d /home/meihouwang -m meihouwang 

二、用户组管理命令

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同。 

如Linux 下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。 

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group 文件的更新。 

“本用户”:即创建Ubuntu的用户名

2.1、 groupadd 新增组

1、基本语法 

groupadd 组名 

2、案例实操(添加一个xitianqujing 组) 

sudo groupadd xitianqujing 

2.2、groupdel 删除组 

1、基本语法 

groupdel 组名 

2、案例实操 (删除xitianqujing 组 )

sudo groupdel xitianqujing 

2.3、groupmod 修改组 

1、基本语法 

groupmod -n 新组名 老组名 

2、选项说明 

选项功能描述
-n<新组名> 指定工作组的新组名

2.4、usermod 修改用户主组 

在Linux 和Unix 系统中,每个用户都有一个主组(primary group)和可能的多个附加组(secondary groups 或 additional groups). 

用户的主组在用户创建时被指定,默认与用户名称相同,当用户创建一个新文件或目录时,默认情况下,这些文件或目录会被分配给用户的主组。 

1、基本语法 

usermod -g 组名 用户名 

2、选项说明 

选项功能描述
-g指定用户的新主组 

3、案例实操 

(1)查看用户主组 

默认情况下用户的家目录会被分配给主组。

sudo adduser zhubajie 
ll /home 

(2)切换用户主组 

sudo usermod -g xitian zhubajie
ll /home

2.5、cat /etc/group查看附加组和用户的映射关系 

/etc/group 文件存储了用户和附加组的映射关系,每一行对应一个用户组,第三个冒号后面是以该组作为附加组的用户列表,列表为空表示没有用户将其作为附加组。 

基本操作 

cat /etc/group

2.6、将用户添加到附加组 

1、基本语法 

usermod -aG 组名 用户名 

2、选项说明 

选项功能描述
-aG指定用户需要加入的附加组 

3、案例实操 

(1)查看“本用户” 组的用户列表 

sudo cat /etc/group 

(2)将“本用户” 作为zhubajie 的附加组 

sudo usermod -aG 本用户 zhubajie 
sudo cat /etc/group

2.7、将用户从组中移除 

1、基本语法 

deluser 用户名 组名 

2、案例实操 

sudo deluser zhubajie 本用户
正在将用户"zhubajie"从组"本用户"中删除...
完成。 

2.8、sudo 设置普通用户具有root权限 

sudo 是将对应的命令给到root用户去执行。 

1、将meihouwang更名为sunwukong 

sudo usermod -l sunwukong meihouwang 
sudo usermod -d /home/sunwukong -m sunwukong 

2、修改配置文件 

sudo vim /etc/sudoers

 找到下面一行(50行),如下所示: 

# Allow members of group sudo to execute any command 
%sudo   ALL=(ALL:ALL) ALL 

这行的作用是允许sudo组的所有成员执行任何命令,换言之,该组成员都拥有了root权限。但是通过sudo命令操作时需要输入密码。在最后一个ALL前添加NOPASSWD:,则该组的成员通过sudo命令操作时不必输入密码。 

# Allow members of group sudo to execute any command 
%sudo   ALL=(ALL:ALL) NOPASSWD:ALL 

保存退出。注意:sudoers文件没有写权限,保存退出要用wq!。 

3、查看sudo组的成员 

sudo cat /etc/group

4、将sunwukong添加到sudo组中 

sudo usermod -aG sudo sunwukong 

5、重新查看sudo组的成员 

sudo cat /etc/group

可以看到,“本用户” 已经在sudo组中,因此之前我们并没有做sudo相关的配置,但是“本用户” 却可以获得root权限。 

6、案例实操 

(1)切换到sunwukong 

su - sunwukong

(2)用普通用户sunwukong查看/etc下的sudoers文件

 sudo cat /etc/sudoers

(3)切换回“本用户” 

 exit

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/198.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网格不迷路:用 CSS 网格生成器打造完美布局

前言 你是否曾因写错 grid-template-areas 而捶键盘?是否在面对千层嵌套的复杂布局时,瞬间怀疑人生,甚至思考要不要转行去卖奶茶?别慌,CSS 网格生成器闪亮登场,像拼乐高一样,帮你轻松搭建网页结构,还能自动输出干净代码,堪称“前端界的乐高大师”。让我们放下枯燥的代…

Java 网络安全新技术:构建面向未来的防御体系

一、Java 安全架构的演进与挑战 1.1 传统安全模型的局限性 Java 平台自 1995 年诞生以来&#xff0c;安全机制经历了从安全管理器&#xff08;Security Manager&#xff09;到 Java 平台模块系统&#xff08;JPMS&#xff09;的演进。早期的安全管理器通过沙箱模型限制不可信…

【STM32】定时器输入捕获

STM32 定时器输入捕获功能笔记 一、什么是输入捕获&#xff08;Input Capture&#xff09; 输入捕获是利用定时器的输入通道&#xff0c;在检测到信号电平变化&#xff08;如上升沿或下降沿&#xff09;时&#xff0c;立即将当前计数器的值捕获并保存到捕获寄存器&#xff08…

【安装指南】Chat2DB-集成了AI功能的数据库管理工具

一、Chat2DB 的介绍 Chat2DB 是一款开源的、AI 驱动的数据库工具和 SQL 客户端&#xff0c;提供现代化的图形界面&#xff0c;支持 MySQL、Oracle、PostgreSQL、DB2、SQL Server、SQLite、H2、ClickHouse、BigQuery 等多种数据库。它旨在简化数据库管理、SQL 查询编写、报表生…

NVIDIA Performance Primitives (NPP) 库全面解析

NVIDIA Performance Primitives (NPP) 是 NVIDIA 提供的 GPU 加速图像和信号处理函数库,专为 CUDA 架构优化设计。NPP库通过提供高度优化的图像和信号处理原语,可以显著加速各类视觉计算任务,是CUDA开发者处理多媒体数据的利器。 一、NPP 库概述 核心特性 高性能:针对 NV…

基于C++、JsonCpp、Muduo库实现的分布式RPC通信框架

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;RPC框架 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 项目介绍JsonCpp库简单介绍Muduo库简单介绍C11异步操作——std::future1. 使用 std::async 关联异步任务2. std::packaged_task…

【多云PaaS】跨云平台的无缝迁移方案

多云PaaS&#xff1a;跨云平台的无缝迁移方案 一、技术背景及发展二、技术特点与核心能力1. 容器化与云原生深度融合2. 智能运维体系3. 统一服务目录 三、关键技术实现细节难题1&#xff1a;异构资源抽象难题2&#xff1a;数据一致性保障难题3&#xff1a;网络互通优化 四、未来…

curl详解

curl 是一个常用的命令行工具&#xff0c;用于发送 HTTP 请求&#xff0c;支持包括 GET、POST、PUT、DELETE 等在内的多种 HTTP 方法。它非常适合用来测试 API、下载文件、与后端服务进行交互等。接下来&#xff0c;我会详细讲解 curl 的基本用法以及常见的应用场景。 &#x…

Node.js心得笔记

npm init 可用npm 来调试node项目 浏览器中的顶级对象时window <ref *1> Object [global] { global: [Circular *1], clearImmediate: [Function: clearImmediate], setImmediate: [Function: setImmediate] { [Symbol(nodejs.util.promisify.custom)]: [Getter] }, cl…

深挖Java基础之:变量与类型

今天我要介绍的是在Java中对变量和类型的一些相关知识点的介绍&#xff0c;包括对基本数据类型&#xff0c;引用类型&#xff0c;变量命名规则和类型转换以及其注意事项的解明。 java变量与类型&#xff1a;Java 是静态类型语言&#xff0c;变量必须先声明类型后使用。变量是存…

PostgreSQL数据库操作SQL

数据库操作SQL 创建 创建数据库 create database db_test;创建并指定相关参数 with owner : 所有者encoding : 编码connection limit &#xff1a;连接限制 create database db_test1 with owner postgresencoding utf-8connection limit 100;修改 修改数据库名称 renam…

Java 泛型参数问题:‘ResponseData.this‘ cannot be referenced from a static contex

问题与处理策略 问题描述 Data AllArgsConstructor NoArgsConstructor public class ResponseData<T> {private Integer code;private String msg;private T data;public static final int CODE_SUCCESS 2001;public static final int CODE_FAIL 3001;public static …