Linux——管理用户和用户组

news2025/1/11 9:53:38

一、用户有哪些

  1. root用户

    • 定义:root用户是Linux系统中的最高权限用户,具有对系统所有资源的完全控制权。
    • 特性:root用户可以执行系统中的任何操作,包括修改系统配置文件、安装软件、管理系统服务等。由于其拥有最高权限,因此root用户的误操作或恶意使用可能对系统造成严重损害。
    • 安全性:为了提高系统的安全性,默认情况下,Ubuntu等Linux发行版禁用了root用户的直接登录,而是通过sudo命令来临时提升用户权限。
  2. 系统用户

    • 定义:系统用户是指那些由系统自动创建并用于特定系统任务的用户,如运行服务、守护进程等。
    • 特点:系统用户通常无法直接登录系统,它们的主要作用是支撑系统的正常运行。系统用户的UID(用户标识符)范围通常为1-499。
    • 示例:常见的系统用户包括bin、nobody等,这些用户主要用于运行系统级的服务和进程。
  3. 普通用户

    • 定义:普通用户是由系统管理员创建的,用于日常登录和操作系统的用户。
    • 权限限制:普通用户的权限受到严格限制,只能访问和修改自己目录下的文件和资源。这种权限划分确保了系统的稳定性和安全性。
    • 创建与管理:可以使用useradd命令创建新用户,使用usermod命令修改用户属性,如更改密码、家目录等。使用userdel命令可以删除用户账户及其主目录

二、什么是用户组

  1. 用户组

    • 定义:用户组是一组用户的集合,它允许对多个用户应用相同的权限设置。
    • 作用:通过将用户添加到组中,管理员可以轻松地为组内的所有用户设置相同的文件和目录权限。这简化了权限分配和管理的过程。
    • 类型:用户组可以分为基本组和附加组。基本组是在创建用户时自动创建的同名组,而附加组则是用户可以加入的其他组。
    • 管理:可以使用groupadd命令创建新组,使用groupmod命令修改现有组的属性,如更改GID(组标识符)。使用groupdel命令可以删除组。

三、查看所有用户

1、可以看到root为0:0权限是最高的,权限:用户组

2、bin、daemon为系统用户

3、yinzhen及下面的都为普通用户

4、cat是查看,/etc 根目录下的etc

权限:权限越大可以操作的文件更多,查看的内容越多

四、使用root查看用户更多信息

1、先命令su或su - ,切换到root超级用户

2、中间显示为密码,为密文

3、后面是时间戳

4、cd:返回

五、怎么添加用户?

1、useradd 选项 用户名

2、选项有哪些?

        常用的使用 -d,-c, -m, -s, -u 就够了

  1. -c, --comment "Comment":设置用户的注释字段,通常用于描述用户。

  2. -d, --home HOME_DIR:指定用户的主目录(home目录)。例如,useradd -d /home/newuser newuser将创建一个名为newuser的新用户,并将其主目录设置为/home/newuser。

  3. -e, --expiredate EXPIRE_DATE:设置用户帐户的过期日期,格式为YYYY-MM-DD。如果未指定,useradd将使用系统默认的过期日期或永不过期。

  4. -f, --inactive INACTIVE:设置用户帐户在密码过期后多少天内被禁用。0表示立即禁用,-1表示不使用此功能。

  5. -g, --gid GROUP:指定用户的初始组。组名必须已存在,组号码必须指代已存在的组。如果不指定,useradd会根据系统的默认值来设置。

  6. -G, --groups GROUPS:指定用户所属的附加组列表。每个组之间用逗号分隔,没有空格。例如,useradd -G adm,dialout newuser将把新用户添加到adm和dialout这两个附加组中。

  7. -m, --create-home:创建用户时同时创建主目录。如果主目录不存在,这个选项会创建它,并从/etc/skel目录中复制文件到新创建的主目录中。

  8. -M, --no-create-home:即使系统范围的设置要求创建主目录,也不为用户创建主目录。

  9. -N, --no-user-group:不要为用户创建同名组,但将用户添加到由-g选项或/etc/default/useradd中的GROUP变量指定的组。

  10. -o, --non-unique:允许使用重复的UID创建用户账户。此选项仅与-u选项结合使用。

  11. -p, --password PASSWORD:设置用户的密码(已加密)。注意,不推荐使用这个选项,因为加密过的密码会在命令行上可见。

  12. -s, --shell SHELL:指定用户登录后使用的Shell。如果不指定,系统将使用默认的Shell。例如,useradd -s /bin/zsh newuser将设置新用户的登录Shell为/bin/zsh。

  13. -u, --uid UID:指定用户的用户ID。如果未指定,系统将自动分配一个UID。

3、添加liming1用户,不使用选项

使用命令查看

最后添加了liming1用户

4、选项使用

        以-u为例子

给定ID 1024,上面的liming1用户不给为随便分配

六、设置用户密码

1、passwd 选项 用户名

2、选项

        常用的使用 -l,-u, -d, -S, -f 就够了

  1. -a:显示密码的更改时间和上一次更改密码的提示。这可以帮助用户了解他们密码更改的历史记录。

  2. -d:删除指定用户的密码,使用户在下次登录时需要设置新密码。这个选项常用于重置或初始化用户密码。

  3. -e:使指定用户的密码立即过期,用户在下一次登录时必须更改密码。这对于要求用户定期更换密码的安全策略非常有用。

  4. -f:强制执行;与-d选项结合使用,可以强制删除用户密码。

  5. -k:设置只有在密码过期失效后,方能更新。这个选项可以用来限制用户在一定时间内不能更改密码。

  6. -l:锁定用户帐号,禁止其登录。当一个用户帐户被锁定时,他将无法登录到系统。

  7. -n:设置密码最小天数,防止用户在一定时间内更换密码。这样可以增加密码更改的安全性。

  8. -q:静默模式,少量输出。这对于在脚本中使用passwd命令时非常有用。

  9. -r:使用指定的root目录。这对于在一个具有不同root目录的系统上更改密码非常有用。

  10. -S:显示密码最后修改的状态。它将显示密码过期状态以及上一次更改密码的时间。

  11. -u:解锁已锁定的用户帐户。如果一个用户帐户因为某些原因被锁定了,可以使用这个选项来解锁。

  12. -w:设置密码最大天数,确保用户定期更改密码。这有助于提高密码的安全性。

  13. -x:设置密码的过期时间,超过该时间后用户必须更换密码。

3、为liming1用户添加密码

输入的密码是看不见的,要知道,要记住,显示无效密码,重新输入一次一样的就可以了

之后我们使用普通用户切换到 liming1 用户是需要密码验证的,root用户不需要

4、修改用户

        (1)usermod 选项 参数

        (2)  选项

                常用:-g,-l,-L,-u,-U

  1. -a:把用户追加到某些组中,仅与-G选项一起使用。

  2. -c:修改用户的注释字段(/etc/passwd文件第五段comment)。例如,usermod -c "New Comment" username将用户名为username的用户的注释字段改为“New Comment”。

  3. -d:修改用户的家目录,通常和-m选项一起使用。例如,usermod -md /home/newdir username将用户名为username的用户的家目录改为/home/newdir,并移动旧家目录中的内容到新位置。

  4. -e:指定用户账号禁用的日期,格式YY-MM-DD。例如,usermod -e 2024-12-31 username将用户名为username的用户的账号禁用日期设置为2024年12月31日。

  5. -f:设置密码过期后多少天禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1。例如,usermod -f 7 username将用户名为username的用户的密码在过期7天后禁用其账号。

  6. -g:修改用户的主群组。例如,usermod -g newgroup username将用户名为username的用户的主群组改为newgroup。

  7. -G:修改用户的附加群组。例如,usermod -G group1,group2 username将用户名为username的用户的附加群组设为group1和group2。

  8. -l:修改用户的登录名称。例如,usermod -l newname oldname将原用户名为oldname的用户的登录名改为newname。

  9. -L:锁定用户的密码。例如,usermod -L username将锁定用户名为username的用户的密码。

  10. -m:移动用户的家目录,通常和-d选项一起使用。例如,usermod -md /home/newdir username不仅将用户名为username的用户的家目录改为/home/newdir,还会移动旧家目录中的内容到新位置。

  11. -s:修改用户登录后使用的shell。例如,usermod -s /bin/bash username将用户名为username的用户的登录shell改为/bin/bash。

  12. -u:修改用户的UID。例如,usermod -u 5000 username将用户名为username的用户的UID改为5000。

  13. -U:解除密码锁定。例如,usermod -U username将解除用户名为username的用户的密码锁定状态

5、修改liming1用户的UID

UID是唯一的

修改成功

七、删除用户

1、userdel 选项 用户名

2、选项

  1. -r:此选项用于在删除用户的同时,删除用户的主目录以及目录中的所有文件。这有助于确保与该用户相关的所有数据都被彻底清除,但使用此选项时应谨慎,以免误删重要数据。

  2. -f:强制删除用户账号,即使用户当前正在登录或拥有正在运行的进程。这个选项非常有用,当需要删除一个可能仍在使用的账户时,可以确保操作成功进行。然而,需要注意的是,强制删除用户可能会导致系统进入不一致的状态,因为该用户已有的SSH链接不会被断开。

3、删除 liming1 用户

八、用户切换

1、su 选项 用户名

2、选项

  1. -:强制使用目标用户的环境变量。当加上此选项时,切换到的用户环境将与该用户登录时的环境一致,包括工作目录、HOME、SHELL、USER等环境变量。

  2. -c COMMAND:指定命令在新用户身份下执行。例如,su -c "ls -l" root将切换到root用户并执行ls -l命令,之后恢复原来的身份。

  3. -l 或 --login:等同于使用-选项。这个选项也会使shell成为可登录的shell,即加载目标用户的登录配置文件。

  4. -m 或 -p 或 --preserve-environment:保持当前环境变量不变。使用此选项时,切换用户后不会改变当前环境变量的值。

  5. -s SHELL:指定shell程序。例如,su -s /bin/bash root将切换到root用户并使用/bin/bash作为shell。

3、切换到Addy1,root切换不需要密码

九、查看用户的所属用户组

1、groups 用户名

2、查看Addy1 的所属用户组

这个组只有他自己这个用户

十、添加用户组

1、groupadd 选项 参数

2、选项

        常用的有:-g , -r , -o

  1. -f, --force:如果指定的组已经存在,此选项将使命令仅以成功状态退出。当与-g选项一起使用时,并且指定的GID(组ID)已经存在时,它会选择一个唯一的GID。

  2. -g, --gid GID:指定新用户组的组ID。这个值必须是唯一的,除非使用了-o选项。默认情况下,系统会使用大于或等于GID_MIN的最小值,并且大于每个其他已存在的组的GID。

  3. -K, --key KEY=VALUE:重写/etc/login.defs文件中的默认值,如GID_MIN、GID_MAX等。可以指定多个这样的选项。

  4. -o, --non-unique:允许添加一个非唯一的GID值。

  5. -p, --password PASSWORD:为新用户组设置加密过的密码。默认情况下,密码是禁用的。注意,不推荐使用这个选项,因为密码(或加密过的密码)可能会被列出而看到。您应该确保密码符合系统的密码政策。

  6. -r, --system:创建一个系统组。新的系统组的数字标识符将在SYS_GID_MIN到SYS_GID_MAX范围内选择,这些范围定义在login.defs文件中,而不是GID_MIN到GID_MAX范围内。

  7. -R, --root CHROOT_DIR:将修改应用到CHROOT_DIR目录,并使用配置。

3、创建用户组group1,指定GID为2000

这里必须使用root用户,不然会错误

十一、修改用户组

1、groupmod 选项 用户组

2、选项

        常用的:-g,-n,-o

  1. -g, --gid GID:指定新的组ID(GID)。此选项用于更改指定组的GID。例如,sudo groupmod -g 2001 mygroup将mygroup的GID修改为2001。

  2. -n, --new-name NEW_GROUP:指定新的组名。此选项用于更改指定组的名称。例如,sudo groupmod -n newgroup mygroup将mygroup的名称改为newgroup。

  3. -o, --non-unique:允许使用非唯一的GID。当与-g选项一起使用时,此选项允许指定的GID已被其他组使用。例如,sudo groupmod -o -g 2001 existinggroup即使2001已被其他组使用,也将existinggroup的GID修改为2001。

  4. -p, --password PASSWORD:提供加密密码。虽然此选项可用于指定新密码,但请注意,不推荐使用此选项,因为密码(或加密过的密码)可能会被列出而看到。

  5. -R, --root CHROOT_DIR:指定在CHROOT_DIR目录中应用更改,并使用CHROOT_DIR目录中的配置文件。这通常用于在特定环境中进行测试或管理

3、修改用户组group1的GID为3000,且改名为group2

 同样的组和名必须是唯一的,否则会出现下面的情况,不任何显示说明成功

 

十二、删除用户组

1、groupdel 用户组名

2、删除group3的用户组

十三、管理用户组

一个用户可以属于多个用户组,一个用户组有可能存在多个用户

1、gpasswd 选项 用户名(基本组) 用户组(附加组)

2、选项

        常用的:-a, -d ,-A , -r

  1. -a, --add:将指定的用户添加到组中。例如,sudo gpasswd -a username groupname将用户名为username的用户添加到名为groupname的组中。

  2. -d, --delete:从指定的组中删除用户。例如,sudo gpasswd -d username groupname将用户名为username的用户从名为groupname的组中删除。

  3. -A, --administrators:指定组管理员。例如,sudo gpasswd -A adminuser groupname将adminuser设置为groupname组的管理员。

  4. -M, --members:设置组成员列表,用逗号分隔。例如,sudo gpasswd -M user1,user2,user3 groupname将user1、user2和user3设置为groupname组的成员。

  5. -r, --remove-password:删除组密码。例如,sudo gpasswd -r groupname将删除名为groupname的组的密码。

  6. -R, --restrict:限制只有组管理员才能修改组成员列表。这个选项通常与-A选项一起使用。

  7. -S, --syslog:将消息记录到syslog而不是标准输出。这有助于在需要时跟踪gpasswd命令的使用情况。

3、把Addy和itcast添加到itheima组

4、查看这个组有哪些用户

5、删除用户组中的用户

注意:我们不能删除本身,也就是基本组,成立这个组的BOSS

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

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

相关文章

SIP系列七:ICE框架(P2P通话)

我的音视频/流媒体开源项目(github) SIP系列目录 目录 一、NAT 1、NAT介绍 2、NAT类型 2.1、 完全圆锥型NAT 2.2、受限圆锥型NAT 2.3、端口受限圆锥型NAT 2.4、对称NAT 3、NAT打洞 3.1、不同一NAT下 3.2、同一NAT下 二、ICE 三、ICE中的SDP 至此&#x…

Spring Boot如何实现防盗链

一、什么是盗链 盗链是个什么操作,看一下百度给出的解释:盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的…

5.内容管理模块-课程查询

搞清楚一个项目的业务流程最直接的手段,就是找一个账号登录进去,操作一遍。 3.3设计接口 接口设计分析 post在需要提交很多参数的时候使用,并且post的安全性较高。 接口分析: po包,一般存放和数据库交互的实体类。 …

网络编程 | TCP套接字通信及编程实现经验教程

1、TCP基础铺垫 TCP/IP协议簇中包含了如TCP、UDP、IP、ICMP、ARP、HTTP等通信协议。TCP协议是TCP/IP协议簇中最为常见且重要的通信方式之一,它为互联网上的数据传输提供了可靠性和连接管理。 TCP(Transmission Control Protocol,传输控制协议…

vue3组件间传值

definProps方式 子组件&#xff1a;assignSuppliers.vue const propdefineProps({fid:String}); 父组件&#xff1a;index.vue <!-- 供应商分配 --><n-drawerwidth"800"v-model:visible"drawerSupplierConfig.visible":title"drawerSuppli…

《网络安全编程基础》之Socket编程

我的代码 server.c // server.cpp : Defines the entry point for the console application. //#include "stdafx.h" #include <Winsock2.h> #pragma comment(lib,"ws2_32.lib") //添加静态链接库文件 void main(int argc,char* argv[]) {WSADATA …

不只是请求和响应:使用Fiddler解读Cookie与状态码全指南(下)

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持! 不只是请求和响应&#xff1a;使用Fiddler抓包HTTP协议全指南(上)_fiddler 获取响应脚本-CSDN博客https://blog.csdn.net/Chunfeng6yugan/article/details/144005872?spm1001.2014.3001.5501 不只是请求和响…

Linx下自动化之路:Redis安装包一键安装脚本实现无网极速部署并注册成服务

目录 简介 安装包下载 安装脚本 服务常用命令 简介 通过一键安装脚本实现 Redis 安装包的无网极速部署&#xff0c;并将其成功注册为系统服务&#xff0c;开机自启。 安装包下载 redis-7.0.8.tar.gzhttp://download.redis.io/releases/redis-7.0.8.tar.gz 安装脚本 修…

第3章.垃圾收集器与内存分配策略

概述 对象已死 引用计数法 可达性分析算法 再谈引用 生存还是死亡 回收方法区 垃圾收集算法 分代收集理论 3种垃圾收集算法 HotSpot的算法细节实现 根节点枚举 安全点 安全区域 记忆集与卡表 写屏障 并发的可达性分析 误消亡问题 经典垃圾收集器 概述 简单的一些GC CMS G1 低延…

Python 类的设计(以植物大战僵尸为例)

关于类的设计——以植物大战僵尸为例 一、设计类需满足的三要素1. 类名2. 属性和方法 二、以植物大战僵尸的为例的类的设计1. 尝试分类2. 创建对象调用类的属性和方法*【代码二】*3. 僵尸的继承 三、代码实现 一、设计类需满足的三要素 1. 类名 类名&#xff1a;某类事物的名…

如何使用WinCC DataMonitor基于Web发布浏览Excel报表文档

本文介绍使用 WinCC DataMonitor 的 "Excel Workbooks" 功能&#xff0c;通过 Excel 表格显示 WinCC 项目的过程值、归档变量值和报警归档消息。并可以通过 Web 发布浏览访问数据 1&#xff0e;WinCC DataMonitor是什么 ? DataMonitor 是 SIMATIC WinCC 工厂智能中…

【Java】—— 图书管理系统

基于往期学习的类和对象、继承、多态、抽象类和接口来完成一个控制台版本的 “图书管理系统” 在控制台界面中实现用户与程序交互 任务目标&#xff1a; 1、系统中能够表示多本图书的信息 2、提供两种用户&#xff08;普通用户&#xff0c;管理员&#xff09; 3、普通用户…

记录ubuntu22.04重启以后无法获取IP地址的问题处理方案

现象描述&#xff1a;我的虚拟机网络设置为桥接模式&#xff0c;输入ifconfig只显示127.0.0.1&#xff0c;不能连上外网。&#xff0c;且无法上网&#xff0c;用ifconfig只有如下显示&#xff1a; 1、sudo -i切换为root用户 2、输入dhclient -v 再输入ifconfig就可以看到多了…

异步操作,promise、axios

一、异步操作&#xff08;异步编程&#xff09;、同步操作 异步操作是指在编程中&#xff0c;某个任务的执行不会立即完成&#xff0c;同时不会阻塞后续代码的执行。在异步操作中&#xff0c;程序可以继续运行&#xff0c;并在异步任务完成时得到通知并处理结果。这与同步操作…

第一性原理构造医疗信创域高质量发展路径应用探析

门诊电子病历录入 摘要&#xff1a; 主要介绍了第一性原理在医疗系统开发中的应用及其重要性。阐述了第一性原理的概念及发展历程&#xff0c;并指出其在各个领域的重要性和应用价值。详细分析了第一性原理在医疗系统开发中的具体影响&#xff0c;包括对医院管理和互联网医疗的…

MySQL8下载安装教程

前言 1.个人经验&#xff0c;仅供参考&#xff01;&#xff01;&#xff01; 2.如果之前有下载过MySQL&#xff0c;请检查是否有删除干净&#xff0c;在控制面板删除最好 下载网址&#xff1a;MySQL :: MySQL Community Downloads 下载步骤 进入网址选择要下载的 下一步网…

算法日记 45 day 图论(并查集基础)

并查集解决什么问题 并查集常用来解决连通性问题。 大白话就是当我们需要判断两个元素是否在同一个集合里的时候&#xff0c;我们就要想到用并查集。 原理 既然是查找是否在同一个集合中&#xff0c;那么这个集合是怎么构建的呢&#xff1f;用一维数组来表示一个有向图&…

PTA DS 6-4 带头结点的链队列的基本操作 (C补全函数)

6-4 带头结点的链队列的基本操作 分数 10 全屏浏览 切换布局 作者 黄复贤 单位 菏泽学院 实现链队列的入队列及出队列操作。 函数接口定义&#xff1a; Status QueueInsert(LinkQueue *Q,ElemType e)&#xff1b; Status QueueDelete(LinkQueue *Q,ElemType *e)&#x…

Windows 系统没有网络链接常见原因以及解决方案

在使用 Windows 电脑时&#xff0c;有时会遇到电脑显示已连接网络&#xff0c;但却无法访问 Internet 的情况&#xff0c;这可能是由多种原因导致的。以下简鹿办公将详细介绍一些常见原因及对应的解决方案。 一、网络连接问题 原因 路由器故障&#xff1a;路由器长时间运行可…

lnmp+discuz论坛 附实验:搭建discuz论坛

Inmpdiscuz论坛 Inmp: t: linux操作系统 nr: nginx前端页面 me: mysql数据库 账号密码&#xff0c;等等都是保存在这个数据库里面 p: php——nginx擅长处理的是静态页面&#xff0c;页面登录账户&#xff0c;需要请求到数据库&#xff0c;通过php把动态请求转发到数据库 n…