Linux——管理本地用户和组(详细介绍了Linux中用户和组的概念及用法)

目录

一、用户和组概念

(一)、用户的概念

(二)、组的概念

补充组

主要组

二、获取超级用户访问权限

(一)、su 命令和su -命令

( 二)、sudo命令

三、管理本地用户账户

(一)创建用户

(二)修改用户

(三)删除用户 

(四)设置用户密码

四、管理本地组账户

(一)创建组

(二)修改组

(三)删除组

(四)更改组成员

(五)临时更改主要组 


一、用户和组概念

(一)、用户的概念

用户主要分为超级用户(root),系统用户和普通用户

  1. 超级用户账户负责管理系统,超级用户的名称为root,其账户的UID为0,超级用户具有完全的系统访问权限
  2. 系统用户账户提供支持服务进程使用,这些进程通常不需要以超级用户身份运行。系统会为它们分配非特权账户,确保其文件和其他资源不受彼此以及以上系统上普通用户的影响。用户无法使用系统用户账户以交互方式登录。
  3. 普通用户对系统具有有限的访问权限。

使用id命令可以显示有关当前已登录用户的信息 

[kiosk@foundation0 ~]$ id
uid=1000(kiosk) gid=1000(kiosk) groups=1000(kiosk),982(libvirt) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

查看其它用户的信息,将用户名作为参数传递给id命令即可

eg:

 使用ls -l 命令查看文件的所有者,ls -ld命令查看目录的所有者,而不是目录的内容

 上图中,第一列表示第一个字母表示类型,-表示普通文件,d表示目录,l表示软链接(也称符号链接),第二列表示硬链接数目,第三列显示用户名

 使用ps命令可查看进程信息。默认仅显示当前shell中的进程。

  • -a选项可查看与某一终端相关联的所有进程
  • -u选项可查看与进程相关联的用户

在pa -au输出中,第一列显示用户名,第二列显示进程id。

在默认情况下,系统使用/etc/passwd文件存储有关本地用户的信息,/etc/passwd文件的每一行都包含了每个用户的信息

如上显示了/etc/passwd文件中的最后三行用户信息,代码块的每一部分用:分隔。

示例:      usr01:x:1000:1000:User One:/home/user01:/bin/bash

 代码块解释:

  • user01:此用户的用户名
  • x:用户密码(用户密码存储在这里,x为一个占位符)
  • 1000:此用户账户的uid编号
  • 1000:此用户账号的主要组的GID编号
  • User One:用户描述或者真是姓名
  • /home/user01:用户的主目录,以及登录shell启动时的工作目录
  • /bin/bash:用户的默认shell程序(一些账户,例如系统账户使用/sbin/nologin  shell来禁止使用该账户进行交互式登录)
(二)、组的概念
补充组

组通俗理解就是一群用户的集合。组可向其中的所有用户授予文件访问权限,组内的用户享有该组的所有权限,这种通俗意义上的组称为组员用户的补充组,补充组一般允许存在多个成员。

与用户一样,组也具有组名以便于识别。在内部,系统通过分配唯一标识符(组ID或GID)来区分不同的组。

默认情况下,系统使用/etc/group存储有关本地组的信息

如上图/etc/group文件中展示了最后三行的内容,代码块分为四部分,以:分隔

示例:group01:x:10000:user01,user02,user03

  • group01:此组的名称
  • x:组密码字段,x为一个标识符
  • 10000:此组的GID编号
  • user01,user02,user03:属于此组的成员列表
主要组

每个用户有且只有一个主要组,这个组按照GID列在/etc/passwd文件中,主要组拥有用户创建的文件。

在创建普通用户时,会创建一个与用户同名的组,作为该用户的主要组。

二、获取超级用户访问权限

大多数操作系统具有一个超级用户,该用户拥有系统的全部权限,在linux中,该用户为root 用户。但因为root用户的权限过大,很容易将系统置于危险之中,因此系统管理员一般以普通用户的身份登录,仅在必要时候获取root 用户权限进行操作

(一)、su 命令和su -命令

su命令可以使当前用户切换到另一个用户账号,但需要提供要切换的用户账号的密码。(以root用户切换时不需要密码)

su命令与su -命令不同的是su -命令可以切换到shell登录环境。

当su 或su -后面不加用户名时,一般默认为切换到root 用户

( 二)、sudo命令

一般情况下,系统管理员为了安全原因会为root用户配置为没有有效的密码。因此不能使用su或者su -命令获取root用户的权限,此时,可以使用sudo命令

与su 和su -不同的是,sudo命令要求用户使用自己的密码进行身份验证(避免root用户密码的泄露)而不需要要切换用户账户的密码

sudo+命令+选项+参数=使用root用户身份执行该命令   :    sudo -i 为切换到root账户的命令

同时,sudo命令的另一个优点是默认将所有执行的命令记录到/var/log/secure中

/etc/sudoers文件 是sudo命令的主要配置文件。可以使用visudo命令进行编辑。

以下图片是使用su -命令进入root用户进行的操作(刚开始学习,刚才尝试使用sudo -i 命令显示kiosk用户不被允许使用该操作,因此使用su -命令演示),查看/etc/sudoers文件中设置可以使用sudo命令切换到root账户的组和用户

  • %符号表示其后面的 wheel为一个组
  • ALL=(ALL)指具有此文件的任何主机上(第一个ALL),wheel组中的任何用户(第二个ALL)都可以在系统上运行命令
  • 最后一个ALL指所有的命令

/etc/sudoers文件中含有/etc/sudoers.d目录中的所有文件,因此可以通过创建文件放在/etc/sudoers.d目录下来为用户或者组添加sudo访问权限

三、管理本地用户账户

(一)创建用户

useradd username命令用于创建一个名为username用户的账号,系统创建用户的同时也设置了用户的主目录和账户信息,同时也为用户创建了一个私有组(当用户创建文件时,文件必须有所属用户和所属组,系统会将用户的私有组作为创建文件的所属组),但此时用户未设置密码,只有设置密码后用户才可以登录其账号。

(二)修改用户

usermod --help可以展示usermod命令的选项

以下是一些比较重要常用的选项解释: 

  • -a:与-G选项一起使用时意为将组添加到当前用户的组成员当中去,与替换当前用户补充组意思不同
  • -c:将COMMENT文本添加到注释字段
  • -d:为用户账户指定一个主目录
  • -g:为用户账户指定主要组
  • -G:为用户账户指定不充足的逗号2分隔列表
  • -L:锁定账户
  • -m:将用户的主目录移到新的位置(必须与-d选项搭配使用)
  • -S:为用户指定特定的登录shell
  • -U:解锁用户账户
(三)删除用户 

 userdel username命令意为从/etc/passwd文件中删除用户账号,但用户的主目录仍在,userdel -r username命令可以在删除用户账户的同时删除用户的主目录

(四)设置用户密码

passwd username可以为用户设置初始密码或者更改密码

四、管理本地组账户

(一)创建组

groupadd命令用于创建组,不带任何选项时,系统将从/etc/login.defs文件中GID_MIN和GID_MAX变量中指定一个可用的GID,所指定的GID将大于当前所有组的GID,即使有较小的GID可以选择

groupadd命令 -g选项指定选择GID

(二)修改组

groupmod命令可以修改组的属性

groupmod 命令 -n选项可以更改组的名称

上图将group01组的名称修改为group1

groupmod命令 -g 选项可以更改组队的GID

上图将group1组的GID从1008 改为了1010

(三)删除组

groupdel命令用于删除组

 

上图将group1组从/etc/group文件中删除

(四)更改组成员

usermod 命令-g选项用于更改用户的主要组

上图将用户user01 的主要组从user01改为了group01

使用usermod -aG命令将用户添加到某一补充组

上图将user01用户添加到group02补充组中 

(五)临时更改主要组 

在shell 对话中,newgrp 命令临时切换主要组,一次只能有一个组时主要组,当重新登录时,主要组将恢复默认值

上图中,将user01用户的主要组从group01临时更改为group02 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF---Prism视图传参

Prism视图传参方式。 实际应用场景 点击tabitem中的列表数据,同步更新到ListStatic Region对应的界面。目前用两种方式实现了传参数据同步。 第一,事件聚合器(EventAggregator) 1. 定义事件 创建一个事件类,用于传…

微信小程序配置访问服务器失败所发现的问题及解决方案

目录 事前现象问题1:问题现象:问题分析: 问题2:问题现象:问题分析:解决方案: 事后现象 事前现象 问题1: 问题现象: 在本地调试时,一切顺利,但一…

JAVA开源的html转pdf、png转pdf项目

总览 Open HTML to PDF是一个纯Java库,用于使用CSS 2.1(以及更高版本的标准)对合理子集的格式良好的XML/XHTML(甚至一些HTML5)进行布局和格式化,输出为PDF或图像。 使用该库生成漂亮的PDF文档。但请注意,您不能将现代HTML5+直接应用于该引擎并期望获得出色的结果。您必…

妈吖,看过这个大厂的oracle主键自增,我的信心暴增!信创,国产数据库也能行。

创作不易 只因热爱!! 热衷分享,一起成长! “你的鼓励就是我努力付出的动力” 1.数据库oracle自增主键字段思维导图 在Oracle数据库中,可以通过创建序列(SEQUENCE)来实现自增功能。但也可以不在数据库中实现,而是通过程…

Docker中使用自定义网络方式实现Redis集群部署与测试流程

场景 Docker中Docker网络-理解Docker0与自定义网络的使用示例: Docker中Docker网络-理解Docker0与自定义网络的使用示例-CSDN博客 参考上面的流程实现自定义网络的实现。 下面记录其应用实例,使用Docker的自定义网络实现redis集群部署。 注&#xf…

vue3数据结构的渲染01

处理数据: //现有原始数据showCertificateUrl “url01;url02” 使用以下代码将两条通过分号";"分割的url进行处理 const parseUrls () > {urls.value [];// 每次重新赋值前一定要清空之前的旧数据!if (!showCertificateUrl.value) {retu…

数模打怪(八)之图论模型

一、作图 图的数学语言描述: G( V(G), E(G) ),G(graph):图,V(vertex):顶点集,E(edge):边集 1、在线作图 https://csac…

自闭症儿童能否上学:家长的选择与困惑

在自闭症儿童的成长旅程中,上学这一关键议题常常使家长陷入异常艰难的抉择和无尽的困惑之中。对于自闭症儿童究竟能否上学,家长们不得不面对众多纷繁复杂且至关重要的考量因素。 一方面,家长们怀揣着美好的期望,渴望孩子能够融入正…

C# 使用pythonnet 迁入 python 初始化错误解决办法

pythonnet 从 3.0 版本开始,必须设置Runtime.PythonDLL属性或环境变量 例如: string pathToVirtualEnv ".\\envs\\pythonnetTest"; Runtime.PythonDLL Path.Combine(pathToVirtualEnv, "python39.dll"); PythonEngine.PythonHom…

知识图谱增强的RAG(KG-RAG)详细解析

转自:知识图谱科技 这是一个与任务无关的框架,它将知识图谱(KG)的显性知识与大型语言模型(LLM)的隐含知识结合起来。这是该工作的arXiv预印本 https://arxiv.org/abs/2311.17330 。 我们在这里利用一个名为…

linux中mysql的安装使用(普通版版本+docker版本)

linux中mysql的安装使用 一、普通安装1.下载安装包2.流程 二、用docker安装1.拉取mysql镜像2.启动镜像3.开启权限第一种情况第二种情况 三、用Navicat连接 一、普通安装 1.下载安装包 挑选个你喜欢的目录,用wget下载并且解压 wget http://dev.mysql.com/get/Down…

Java人力资源招聘社会校招类型招聘系统PC端

🔍【揭秘】人力资源新利器!社会校招一站式PC端招聘系统全攻略🚀 🌈 开篇引言:招聘新纪元,效率为王! Hey小伙伴们,你是否还在为繁琐的招聘流程头疼不已?🤯 面…

京东商品详情API:多规格商品的返回值处理

处理京东商品详情API中关于多规格商品的返回值,首先需要了解京东API的返回数据结构。通常,对于多规格商品(如不同颜色、尺寸等选项的商品),API会返回一个包含多个规格选项和对应价格、库存等信息的复杂数据结构。 以下…

【“微软蓝屏”事件暴露了网络安全哪些问题?】建设安全稳固的网络基础设施

目录 前言一、软件更新流程中的风险管理和质量控制机制(一)测试流程及风险识别(二)风险管理策略(三)质量控制措施 二、预防类似大规模故障的最佳方案或应急响应对策(一)冗余系统设计…

.NET 一款获取主流浏览器存储密码的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

【解决方案】华普微基于CMT2150A自发电无线遥控解决方案

一、方案概述 自发电无线遥控设备的概念是指设备自身能够通过能量收集技术,如太阳能、动能收集或其他可再生能源,产生所需的电能来供电,而无需更换电池或外部电源。这种技术的应用可以减少对电池的依赖,降低对环境的影响&#xf…

github好用工具分享——lux:一键获取视频指令

我们在学习工作中需要大量的数据信息,然而这些数据有什么获取很麻烦,尤其是视频下载资源,那么有没有一种工具即简单方便又实用呢? 接下来我会向大家介绍lux工具的使用,lux是非常方便的获取视频资源指令,只需…

前端拥抱AI:LangChain.js 入门遇山开路之PromptTemplate

PromptTemplate是什么 PromptTemplate是一个可重复使用的模板,用于生成引导模型生成特定输出的文本。与Prompt的区别: PromptTemplate相对于普通Prompt的优势,即其灵活性和可定制性。 简单了解PromptTemplate后,咱们就来聊聊LangChain里的P…

C语言——运算符及表达式

C语言——运算符及表达式 运算符运算符的分类(自增运算符)、--(自减运算符)赋值运算符逗号运算符(顺序求值运算符) 表达式 运算符 运算符的分类 C语言的运算符范围很宽,除了控制语句和输入输出…

如何安装python

以下的安装仅针对Windows10系统 一、下载python和解释器 解释器下载 第一步,找到下载的地方 1.找到官网 2.直接点击地址链接 Python Release Python 3.7.2 | Python.org 第二步,找到对应的版本进行安装 进入页面之后,下滑,…