Linux用户、用户组

news2024/11/30 12:32:01

用户管理命令:

首先要先知道两个配置文件:
/etc/group 用户组配置文件
/etc/passwd 保存了所有用户的用于读取的必要信息
**/etc/shadow **是 Linux 系统中用于存储用户密码信息的文件。这个文件也被称为“影子文件”,因为它包含了 /etc/passwd 文件中用户账号的加密密码。与 /etc/passwd 文件不同,/etc/shadow 文件通常只有 root 用户和具有特殊权限的用户才能访问,从而增强了系统的安全性。

在添加用户之前,应该先查看一下当前系统下已经存在的用户情况。Linux系统的所有用户都在系统文件/etc/passwd文件中存放,在命令行窗口中运行如下命令
cat /etc/passwd 查看用户列表下面是一些用户(一行表示一个用户,每个字段之间用“:”分隔)
image.png

/etc/passwd配置文件字段及说明:
举例:
root:x:0:0:root:/root:/bin/bash
cg:x:1000:1000:vm1:/home/cg:/bin/bash

字段1用户名
字段2密码占位符(早先时间真的保存了用户密码,后来随着安全提升,就放到/etc/shadow,但是字段保留了。)
字段3用户的UID 0表示超级用户,500 60000普通用户,(换句话说,如果把某个普通用户的UID修改为0,则该用户就变成了管理员账户。)UID从1到499是系统预留的系统用户,也称伪用户,不能用于登录。可以看到在CentOS 7中,普通用户的UID是从1000开始进行分配的。
1-499程序用户(启动一个程序的时候需要依托一个用户的权限来启动,如果没有这些程序用户的话,比如说用root份启动了一个apache服务。如果这个服务有漏洞,或者说被注入恶意代码,那么恶意代码就会以root身份运行,因此启动不同程序的时候使用的都是程序用户的身份,这种用户是不允许登陆系统的,这是程序用户的特点,为了系统安全(在Liunx中,系统不认识用户名,只认UID,相当于身份证)
字段4基本组的 GID ,概念:先有组才有用户【用户必须存在于一个组】
字段5用户信息记录字段【比如用户在公司的工号是多少,联系方式,家庭地址,现在已经很少了,基本废弃了】
字段6用户的家目录
字段7shell脚本:用户登录系统后使用的命令解释器(默认是bash)

/etc/shadow配置文件字段及说明
cat /etc/shadow** **展示出如下数据:
image.png
image.png

序号字段** 说明**
字段1用户名登录用户名
字段2密码加密后的密码(默认使用sha-512这种加密方式,同时过于简单的密码加密完了的信息完全相同,还混合了salt值,salt值不能被别人看到,若看到可利用字典进行密码暴力破解)
字段3最后一次修密码的时间(从1970年1月1日到最后一次修改密码的天数
字段4最小间隔时间两次修改密码之间最少间隔的天数
字段5最大间隔时间密码有效的最大天数, 99999表示永不过期
字段6警告时间密码有效期前多少天开始向用户发出警告信息
字段7不活动天数密码过期后多少天内允许用户登录
字段8失效时间整数,是从1970年1月1日到用户禁止登录时间
字段9标认位保留,未使用

为什么Linux要分别使用两个文件来管理用户信息和密码信息呢?查看两个文件的权限,运行如下命令并查看结果:
ls -l /etc/passwd /etc/shadow
image.png
可以看到,passwd 文件所有人都可以读,shadow文件无人有权限,除了root用户(linux机制规定)


创建用户:

每创建一个用户都会新建/home/用户名 ,并作为该用户的家目录,用户对家目录拥有控制权,这也是将用户文件进行分隔的有效措施

useradd [-g -d] 用户名 :

  • 下面可以看到/etc/passwd中已经包含了用户cg2的信息

image.png

  • 可以看到已经包含了同名的cg2目录,并将其作为cg2用户的家目录

image.png
图形化展示:
image.png


useradd命令只能root用户使用,或者root用户组使用
我们可以验证一下:whereis useradd得到useradd所在的文件
image.png
查看权限:发现其他没有任何权限。得证image.png


刚才我们只是创建了用户,但是还没有设置密码,
cat /etc/shadow | grep cg2
image.png
可以看到第二个字段是!! 说明还没有设置密码

locate查找cg2,发现原来还创建了cg2的邮件目录
image.png

**综上所述,**当使用useradd命令新建一个用户后,将在/etc/passwd文件中写入一行新建用户信息,在/etc/shadow文件中写入一行用户密码信息,在/home目录中新建和用户名相同的家目录,在/var/spool/mail目录下新建与用户名相同的邮件目录。

useradd命令的选项

  • 把新建用户cg3放入指定用户组cg2中
    • useradd -g cg2 cg3

检查一下

cat /etc/passwd可以看到cg3的组号是1001
image.png
或者我们还可以使用id命令检验
image.png

  • -d :创建用户时指定家目录 ,若不指定 ,家目录默认在:/home/用户名

Snipaste_2024-03-05_00-25-37.png

用户组:
Snipaste_2024-03-05_00-27-25.png

默认无密码:
root模式下:
passwd 用户名
添加密码

批量添加用户:

newusers命令可以批量添加用户
步骤:

  1. 首先新建一个文本文档user.txt(内容是要添加用户,格式要和/etc/passwd相同)
    1. image.png/etc/passwd
    2. image.pnguser.txt
  2. 新建密码文档pwds.txt(内容是)

上面我们介绍了创建一个用户,
创建完用户后,家目录中没有任何文件(但是其实有隐藏文件)
image.png

若需要在新建用户的同时就在其家目录中放入一些文件,如本服务器的使用说明文档或注意事项文档等,则可以通过修改/etc/skel目录中的内容来达到目的。

/etc/skel目录在Linux系统中扮演着重要的角色。它主要用于存放新建用户时需要拷贝到其家目录下的文件。当系统管理员使用useradd命令添加新用户时,/etc/skel目录下的所有文件都会自动地复制到新用户的家目录下。

image.png

passwd命令设置密码

一般的用法有两种:一是使用root用户来为普通用户设置密码,二是普通用户使用passwd命令为自己设置密码。使用普通用户登录并为自己设置密码时必须知道原密码(正常的流程应该是使用root账户来新建用户并为其设置初始密码。)
要点:

  • 使用root用户为普通用户设置密码passwd 用户名(不加用户名是为自己设置密码)
  • root用户下设置密码不受密码格式限制,普通用户受密码格式限制

拓展:
passwd命令除了设置用户密码外,还可以完成显示用户密码状态和锁定(解锁)用户的功能,这两个功能须在root用户登录下进行,如下所示:
image.png
image.png

锁定用户passwd -l 用户名,如下:锁定了cg2,但是root用户可以强制进入
image.png
普通用户cg3就无法进入cg2了
image.png
解锁用户(root下使用):passwd -u 用户名如下:
image.png


chage修改帐号、密码的有效期

chage -d 999999999999 jack表示从1970年1月1日起,密码的有效期是999999999天
选项:
image.png


删除用户

userdel [-r] 用户名

  • 选项:-r ,删除用户HOME目录,
    • Snipaste_2024-03-05_00-42-01.pngSnipaste_2024-03-05_00-41-52.png
  • 不使用 - r ,保留HOME目录,
    • image.png
    • Snipaste_2024-03-05_00-36-34.png

用户组管理命令

之前我们已经创建好了几个用户,现在我们可以再了解一个文件–组文件 /etc/group
cat /etc/group
image.png
可以发现新建一个用户,都会在group中新增一条记录,每一条记录都包含四个字段。
image.png
除了/etc/group文件外,还有另外一个与组相关的配置文件/etc/gshadow
cat /etc/gshadow
image.png

第一字段:用户组
第二字段:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码;
第三字段:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割;
第四字段:组成员,如果有多个成员,用,号分割;

创建用户组:

groupadd group1创建用户组group1
cat /etc/group | grep group1查看group文件
image.png
cat /etc/gshadow | grep group1查看 gshadow文件
image.png

可以看到group1已经创建好了,但是组内还没有文件

修改组id和组名等信息

使用groupmod命令 注意谨慎修改

删除组

groupdel命令 注意谨慎,防止该组内用户集体失去某些文件的权限
如:
image.png
但是这里报错了,不可删除初始组,也就是说要先要先删除同名的用户cg3后该用户组也会随之被删除


为了便于群组的管理,有时需要为组设置组管理员,组管理员管理哪些用户可以被添加或被移除。

groupadd majorgroup  1添加组
gpasswd majorgroup  2给组添加密码
gpasswd -A cg majorgroup  3将用户cg设置为组管理员

image.png
可以在,gshadow文件中加密的密码,还有管理员cg (并没有被添加进组)

接着,添加cg和cg2进majorgroup

gpasswd -a cg majorgroup
gpasswd -a cg2 majorgroup

image.png成功添加进去
如果这两个用户需要在不同的所属组之间切换,则可以使用newgrp命令。


组成员共享目录

在实际工作中,会出现如下场景:3个普通用户在同一个项目组内,他们各自都有自己的家目录和初始私有组,而他们同时要在同一个目录下进行项目开发。这时就需要共享成员目录来协同工作

上述命令运行后,work组已经创建,并且加入了jim,tom,bob(管理员)
下面将通过命令来讲项目专属目录的所属组变为working组

chgrp work /project/working   
chmod 2770 /project/working  

chgrp working /project/working 的意思是将 /project/working文件或目录的组所有权更改为 working 组。
其中 2 代表 “set group ID”(SGID)位。当设置了这个位时,对于目录,新创建的文件或子目录将继承其父目录的组,而不是继承创建者的主组。
image.png
结果显示working目录的权限情况是创建者root拥有读、写和执行权限,而working组成员的权限为rws,其中s为特殊权限。

组外成员想进入组共享目录:不允许
image.png

拓展:
执行权限对于目录和文件来说是不同的。对于目录来说,执行权限是指是否可以进入某个目录,而对于文件来说,执行权限是指该文件中的内容是否可以被执行

查看用户所属组:

id [用户名]
image.png
uid是用户id
gid是用户所属组id
直接输入id命令,没有用户参数的话,会直接输出当前用户的用户信息


修改用户所属组

usermod -aG 用户组 用户名,
将指定用户加入指定用户组
注意:用户和用户组都得提前存在
image.png


getent

使用getent命令,可以查看当前系统中有哪些用户
语法:
getent passwd

image.png
…中间还有很多用户
image.png

cat /etc/passwd效果一样

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity发布webgl设置占满浏览器运行

Unity发布webgl设置占满浏览器运行 Unity发布webgl的时候index.html的模板文件 模板文件路径,根据自己的需求修改。 C:\Program Files\Unity\Hub\Editor\2021.1.18f1c1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\WebGLTemplates\Default再桌面新建一个t…

chatgpt大模型基础学习

chatgpt大模型基础学习 1. 吴恩达提示工程2. 大模型说的token是什么 1. 吴恩达提示工程 知乎 https://zhuanlan.zhihu.com/p/626290417?utm_id0 中文版 https://mp.weixin.qq.com/s?__bizMzkwMjQ5MzExMg&mid2247483714&idx1&sn5e905f5ec6196f6dc2187db2a8618f02&…

Jmeter接口测试,一篇足矣。

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号:互联网杂货铺,回复1 ,免费获取软件测试全套资料,资料在手,涨薪更快 现在对测试人员的要求越来越高,不仅仅要做好…

使用强森算法求任意两点之间最短路径

对于强森算法的算法思想,如果给定的图中是没有负数的边,那么就可以使用迪杰斯特拉算法来进行遍历每个节点,找到它与其他节点的最短路径,而如果给定的图中是存在负数的边,但是不存在负数的环的时候,那么就可以使用算法对边长做一些修改并且可以准确的找到给定的两个节点之…

各种窗函数对脉压结果的影响

雷达导论专栏总目录链接: 雷达导论专栏总目录-CSDN博客 1. 各类窗函数 有几个窗函数的系数可配,配置如下: tukeywin(N,0.75)kaiser(N,2.5)gausswin(N,1.5)taylorwin(N,3,-24)2. 时域加窗 时域加窗时,直接加在匹配滤波函数上:Htw=exp(1j*pi*K*tp.^2).*win;。那么矩形窗就相…

手撕算法-最长公共子序列(二)

最长公共子序列(二) 分析:典型的动态规划,直接看代码了。 代码: import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** longest common sub…

【第十四章】改进神经网络学习方式-权重初始化

当我们创建神经网络时,我们必须为初始权重和偏置做出选择。到目前为止,我们一直根据我在第一章中简要讨论过的一种方法来选择它们。提醒一下,那种方法是使用独立的高斯随机变量来选择权重和偏置,使它们的均值为0,标准差…

从C++源代码到可执行文件?

从C源代码到可执行文件的转换是一个涉及多个步骤的过程,通常包括预处理、编译、汇编和链接四个主要阶段: 1.四个阶段 预处理 (Preprocessing) 预处理器(如cpp)首先读取原始的C源代码文件,并对其进行一系列文本替换操作…

【考研数学】武忠祥全年各阶段搭配用书汇总

如果选武忠祥,讲义方面选择基础篇和辅导讲义即可。分别在基础阶段和强化阶段使用。 此外复习全书不用买(无论是基础篇还是提高篇都不用)你以后可能会看到它的各种推广,不要轻信,有讲义的情况下全书很难利用得上。 武…

Positive Technologies 专家发现的漏洞已在 ABB 控制器中得到修复

🌟 我们的同事一如既往地表现出色:应用分析专家 Natalia Tlyapova 和 Denis Goryushev 因发现 Freelance AC 900F 和 AC 700F 控制器中的两个漏洞而受到 ABB 的表彰。 这些设备用于自动化大规模连续循环生产设施和构建企业配送控制系统。利用这些漏洞的…

一文彻底搞懂TCP三次握手和四次挥手,及常见的面试题带答案

TCP(传输控制协议)是一种可靠的、面向连接的协议。在TCP/IP协议栈中,它负责在两个网络应用程序之间建立可靠的会话连接。TCP通过“三次握手”建立连接,通过“四次挥手”断开连接。本文将详细介绍这两个过程,并给出一些…

Women of Polkadot:波卡生态的女性社群与创新力量

在 Web3 行业里,女性似乎总是被忽视的群体。线下峰会的合照一眼望去尽是西装革履的男性成员,项目和机构高管的名单里也似乎难以寻觅到女性领导者的身影。在这个强调技术、编程、极客精神的行业里,女性身份的缺席看起来如此天生自然。 根据 B…

湖北省地质灾害分布数据 崩塌滑坡泥石流空间分布地质灾害详查等数据集

地质灾害是指在自然或者人为因素的作用下形成的,对人类生命财产造成的损失、对环境造成破坏的地质作用或地质现象。地质灾害在时间和空间上的分布变化规律,既受制于自然环境,又与人类活动有关,往往是人类与自然界相互作用的结果。…

防火墙的原理和配置

“防火墙”一词起源于建筑领域,用来隔离火灾,阻止火势从一个区域蔓延到另一个区域。引入到通信领域,防火墙这一具体设备通常用于两个网络之间有针对性的、逻辑意义上的隔离。这种隔离是选择性的,隔离“火”的蔓延,而又…

Vue.js+SpringBoot开发大学生相亲网站

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询会员4.2 查询相亲大会4.3 新增留言4.4 查询新闻4.5 新增新闻 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的大学生相亲网站,包含了会员管理模块、新闻管…

python 基础知识点(蓝桥杯python科目个人复习计划65)

今日复习内容:做题 例题1:遥远的雪国列车 问题描述: 小蓝和小红今天在房间里一起看完了“雪国列车”这部电影,看完之后他们感触颇深,同时他们想到了这样一道题目: 现在有一个数轴,长度为N&a…

【Godot4.2】2D导航02 - AstarGrid2D及其使用方法

概述 AstarGrid2D是Godot4.0新增的A*寻路辅助类型。可以看做是Astar2D的加强版。它允许你通过设置其size和cell_size属性来创建一个虚拟的网格。 并使用set_point_solid()这样的方法来在指定位置创建障碍物。 AstarGrid2D的好处是你不再需要手动的添加点以及点与点之间的连接…

【进阶五】Python实现SDVRP(需求拆分)常见求解算法——自适应大邻域算法(ALNS)

基于python语言,采用经典自适应大邻域算法(ALNS)对 需求拆分车辆路径规划问题(SDVRP) 进行求解。 目录 往期优质资源1. 适用场景2. 代码调整3. 求解结果4. 代码片段参考 往期优质资源 经过一年多的创作,目前…

OPTEE v3.20.0 FVP环境搭建

目录 一、前提条件 二、下载fvp代码 三、下载工具链 四、下载Foundation_Platform FVP平台 五、编译及运行 一、前提条件 1、安装如下的依赖工具 sudo apt-get install android-tools-adb android-tools-fastboot autoconf \ automake bc bison build-essential ccache c…

精酿啤酒:开启时尚派对的钥匙

Fendi club啤酒,一个代表着时尚与品味的品牌,如今进入了啤酒市场,推出了名为“Fendi club”的啤酒。这一创新的举措不仅展现了品牌的多元化发展,更为消费者提供了一种全新的时尚生活方式。 Fendi club啤酒不仅仅是一种产品&#x…