用户和组管理

用户管理

用户管理包括创建用户、修改用户属性、删除用户等操作。

创建用户

使用 useradd 命令可以创建新用户。

格式:useradd [选项] username

步骤1:创建新用户

useradd tom

步骤 2: 设置用户密码

新用户创建后,需要设置一个密码才能登录系统。

示例:为 tom 设置密码
passwd tom

修改用户信息

这里举一些常用的命令:

1.使用 usermod 命令可以更改用户的主目录。

格式:usermod [选项] 用户名

示例:将用户 tom 的主目录更改为 /home/newhome

 usermod -d /home/newhome tom

2.修改用户的UID

使用 -u 选项可以更改用户的用户ID(UID)。

示例:将用户 tom 的UID更改为1005
usermod -u 1005 tom

3.修改用户的主要组

使用 -g 选项可以更改用户的主要组。

示例:将用户 tom 的主要组更改为 newgroup
usermod -g newgroup tom

4.锁定或解锁用户账户

使用 -L 选项可以锁定用户账户,使其无法登录。使用 -U 选项可以解锁用户账户。

示例:锁定用户tom的账户
 usermod -L tom
示例:解锁用户tom的账户
usermod -U tom

删除用户账户

使用 userdel 命令可以删除用户账户。以下是一些常用的选项:

  • -r: 删除用户的同时删除用户的主目录和邮件池。
示例:删除用户 username

如果要删除名为 username 的用户,但不删除其主目录和邮件池,可以使用以下命令:

userdel username

如果要删除用户 username 及其主目录和邮件池,可以使用 -r 选项:

userdel -r username

检查用户是否被删除

删除用户后,你可以通过以下几种方式来检查用户是否真的被删除了:

  • 检查 /etc/passwd 文件,确认 username 的条目是否已消失。
  • 使用 id 命令来检查用户是否存在:
id username

如果用户已被删除,id 命令将不会返回任何信息。

注意事项

  • 在删除用户之前,请确保没有正在运行的用户进程,否则可能会导致数据丢失或系统不稳定。
  • 如果用户拥有任何系统文件或目录,你可能需要手动检查并决定是否保留这些文件。
  • 如果其他用户或应用程序依赖于要删除的用户账户,删除用户可能会导致这些问题用户或应用程序出现问题。
  • 删除用户是一个不可逆的操作,一旦执行,用户的数据将无法恢复(除非有备份)。

用户组管理

步骤 1: 创建用户组

使用 groupadd 命令可以创建新的用户组。

格式:groupadd  组名

示例:创建名为 groupname 的用户组
groupadd groupname

步骤 2: 修改用户组

使用 groupmod 命令可以修改已存在的用户组,例如更改用户组的名称或GID(组ID)。

格式:groupmod [选项] 组名

选项:

  • -n :修改组名
  • -g :修改GID
示例:更改用户组名称

将 groupname 更改为 newgroupname

groupmod -n newgroupname groupname
示例:更改用户组的GID

将 groupname 的GID更改为新的GID(假设为 1005):

groupmod -g 1005 groupname

步骤 3: 删除用户组

使用 groupdel 命令可以删除用户组。但是,如果用户组中还有用户存在,则无法直接删除。

示例:删除名为 groupname 的用户组
groupdel groupname

步骤 4: 添加用户到用户组

使用 usermod 命令可以将现有用户添加到用户组。

示例:将用户 tom 添加到 groupname 用户组
usermod -aG groupname tom

解释:选项-G:修改附加组 ,-a是添加,所以这里-aG 表示将用户添加到附加组。注意这里是增加附加组,并不是修改组,修改组要使用下面的代码:

usermod -g 组名 用户名

步骤 5: 从用户组中移除用户

同样使用 gpasswd 或 deluser 命令可以从用户组中移除用户。

 示例:从 groupname 用户组中移除用户 tom

使用 gpasswd

gpasswd -d tom groupname

使用 deluser(在某些Linux发行版中):

 deluser tom groupname

补充:gpasswd

    gpasswd 是Linux系统中用于管理用户组的命令行工具。它允许管理员添加或删除用户到特定的用户组,设置或更改用户组的密码,以及执行其他与用户组相关的操作。

1. 添加用户到用户组

要将用户添加到用户组,您可以使用 -a 选项。

示例:将用户 username 添加到 groupname 用户组
gpasswd -a username groupname

这个命令将 username 添加到 groupname 用户组。用户将能够以该组的身份执行操作。

2. 从用户组中删除用户

要从用户组中删除用户,您可以使用 -d 选项。

示例:将用户 username 从 groupname 用户组中删除
gpasswd -d username groupname
这个命令将 username 从 groupname 用户组中移除。

3. 设置用户组的密码

您可以为用户组设置密码,使得只有知道密码的用户才能通过 newgrp 命令加入该组。

示例:为 groupname 用户组设置密码
 gpasswd groupname

运行此命令后,系统将提示您输入新的密码。

4. 删除用户组的密码

如果您不再希望用户组需要密码来加入,可以使用 -r 选项来移除密码。

示例:删除 groupname 用户组的密码
gpasswd -r groupname

步骤 6: 删除用户组

使用 groupdel 命令可以删除用户组。

步骤 1: 确认要删除的用户组

在删除用户组之前,您需要确认该用户组不存在任何成员,因为 groupdel 命令无法删除包含用户的用户组。

示例:查看用户组 groupname 的成员
grep ^组名: /etc/group

如果输出显示该组有成员,则需要先将所有成员从该组中移除。

步骤 2: 删除用户组

示例:删除名为 groupname 的用户组
 groupdel groupname

这个命令将删除名为 groupname 的用户组。如果该组是系统组或有其他依赖,可能需要额外的步骤来确保系统的稳定性。

注意:如果用户组中仍有成员,groupdel 命令将失败,并显示错误消息。您必须先使用 gpasswd -d username groupname 命令移除所有成员


步骤7:显示用户所属组

格式:groups 用户名

例如:

groups tom

步骤8:显示用户id信息

格式:id 用户名

例如:

id tom

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

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

相关文章

需求8——通过一个小需求来体会AI如何帮助改bug

这篇文章,我们通过一个简单的例子来说明,平时在写需求的时候,我们可以在什么时候用AI来帮助我们写代码。 首先来看一下这个需求:系统中某个用户使用的时候出现了bug,通过手机建立临时任务报错,没有办法新增…

ElasticSearch备考 -- Update by query Reindex

一、题目 有个索引task,里面的文档长这样 现在需要添加一个字段all,这个字段的值是以下 a、b、c、d字段的值连在一起 二、思考 需要把四个字段拼接到一起,组成一个新的字段,这个就需要脚本, 这里有两种方案&#xff…

ES(Elasticsearch)SSL集群部署

8.x后ES不在需要自行准备JDK环境,部署的服务包含ES、Kibana、Logstash,使用二进制方式部署,为了提高安全性,加密logstash、kibana及其他客户端到ES间的通信。 1、准备工作 1.1、 es无法使用root用户启动 useradd -m -s /bin/bas…

论文阅读:Split-Aperture 2-in-1 Computational Cameras (二)

Split-Aperture 2-in-1 Computational Cameras (一) Coded Optics for High Dynamic Range Imaging 接下来,文章介绍了二合一相机在几种场景下的应用,首先是高动态范围成像,现有的快照高动态范围(HDR)成像工作已经证…

Kubernetes-Kind篇-01-kind搭建测试集群

1、Kind 介绍 官方文档地址:https://kind.sigs.k8s.io/ github仓库地址:https://github.com/kubernetes-sigs/kind 国内镜像仓库地址:https://gitcode.com/gh_mirrors/ki/kind/overview kind 是一种使用 Docker 容器 nodes 运行本地 Kubern…

HI6338 (DIP-8内置75W方案)

Hi6338 combines a dedicated current mode PWM controller with integrated high voltage power MOSFET.Vcc low startup current and low operating current contribute to a reliable power on startup design with Hi6338. the IC operates in Extended ‘burst mode’ to …

Nginx请求头丢失,引发出来的问题

1.问题 新增的几个 header 参数是这样的: api_key_idapi_key_value 我配置有2层nginx转发,从机器A到机器B再到目标服务,遇到一个接口请求需要在header中传递api_key_id和api_key_value这2个参数,但是在EC2机器上直接curl目标服…

更美观的HTTP性能监测工具:httpstat

reorx/httpstat是一个旨在提供更美观和详细HTTP请求统计信息的cURL命令行工具,它能够帮助开发者和运维人员深入理解HTTP请求的性能和状态。 1. 基本概述 项目地址:https://github.com/reorx/httpstat语言:该工具主要是以Python编写&#xff…

机器人末端的负载辨识

关节处的摩擦力变小了,导致系统的参数辨识精度会变高,因为动力学方程中的摩擦力项占的比例会变小。 为什么要有一个负载的参数辨识,因为对于整个系统来说,除了负载哈,其他关节都是不变的,出厂时都设置好了&…

金蝶云星空个别字段无法录入异常处理

用户反馈,在录入单据时,第一条数据能录入数量,新增第二条时就无法录入。 用户反馈截图如下: 我登录自己的账号查看,并未发现相同的问题,同时用户也说已经退出重新登录过,问题依旧。 到现场看用…

使用RESTful API构建Web应用程序

开始正式介绍 RESTful API 之前,我们需要首先搞清:API 到底是什么? API(Application Programming Interface) 翻译过来是应用程序编程接口的意思。 我们在进行后端开发的时候,主要的工作就是为前端或者其…

LUCEDA IPKISS Tutorial 77:在版图一定范围内填充dummy

案例分享:在给定的Shape内填充dummy 所有代码如下: from si_fab import all as pdk from ipkiss3 import all as i3 from shapely.geometry import Polygon, MultiPolygon import numpy as np import matplotlib.pyplot as pltclass CellFilledWithCon…

简单的网络爬虫爬取视频

示例代码爬取一个周杰伦相关视频 import requests# 自己想下载的视频链接 video_url https://vdept3.bdstatic.com/mda-qg8cnf4bw5x6bjs5/cae_h264/1720516251158906693/mda-qg8cnf4bw5x6bjs5.mp4?v_from_shkapp-haokan-hbf&auth_key1728497433-0-0-4a32e13f751e04754e4…

电子科技大学高级算法设计与分析-MaxFlow网络流基础知识梳理

MaxFlow网络流 1 网络流基础概念 source:源点 sink:终点 Flow:流量 capacity:容量 Residual:残量 Residual Network:残量网络 Augmenting path:增广路径,表示从源点 s 到终点 t 不包…

爬虫prc技术----小红书爬取解决xs

知识星球:知识星球 | 深度连接铁杆粉丝,运营高品质社群,知识变现的工具知识星球是创作者连接铁杆粉丝,实现知识变现的工具。任何从事创作或艺术的人,例如艺术家、工匠、教师、学术研究、科普等,只要能获得一…

【redis-06】redis的stream流实现消息中间件

redis系列整体栏目 内容链接地址【一】redis基本数据类型和使用场景https://zhenghuisheng.blog.csdn.net/article/details/142406325【二】redis的持久化机制和原理https://zhenghuisheng.blog.csdn.net/article/details/142441756【三】redis缓存穿透、缓存击穿、缓存雪崩htt…

STM32-ADC模数转换

一、概述 ADC(Analog-Digital Converter)模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁12位逐次逼近型ADC,1us转换时间输入电压范围:0~3.3V&#xff…

vscode配置R语言debugger环境:“vscDebugger“的安装

要在 R 中安装 vscDebugger 包,可以按照以下步骤进行: 方法一:使用命令面板自动安装 打开命令面板: 在 Visual Studio Code 中按 CtrlShiftP 打开命令面板。 运行安装命令: 在命令面板中输入并选择 r.debugger.updat…

大数据新视界 --大数据大厂之 Dremio:改变大数据查询方式的创新引擎

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

前端的全栈混合之路Meteor篇:分布式数据协议DDP深度剖析

本文属于进阶篇,并不是太适合新人阅读,但纯粹的学习还是可以的,因为后续会实现很多个ddp的版本用于web端、nodejs端、安卓端和ios端,提前预习和复习下。ddp协议是一个C/S架构的协议,但是客户端也同时可以是服务端。 什…