Linux——管理用户和用户组

一、用户有哪些

  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

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

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

相关文章

synchronized的特性

1.互斥 对于synchronized修饰的方法及代码块不同线程想同时进行访问就会互斥。 就比如synchronized修饰代码块时,一个线程进入该代码块就会进行“加锁”。 退出代码块时会进行“解锁”。 当其他线程想要访问被加锁的代码块时,就会阻塞等待。 阻塞等待…

如何在树莓派上安装Arduino IDE

git clone https://github.com/JetsonHacksNano/installArduinoIDE.git cd installArduinoIDE ./installArduinoIDE.sh sudo reboot sudo shutdown -h now

【JAVA项目】基于ssm的【汽车在线销售系统】

【JAVA项目】基于ssm的【汽车在线销售系统】 技术简介:采用JSP技术、B/S架构、SSM框架、MySQL技术等实现。 系统简介:首页汽车在线销售系统模块如下:首页、汽车信息、新闻资讯、留言反馈、我的收藏管理等功能。管理员输入个人的账号、密码登录…

【代码随想录】刷题记录(66)-修剪二叉搜索树

题目描述: 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父…

《蓝桥杯比赛规划》

大家好啊!我是NiJiMingCheng 我的博客:NiJiMingCheng 这节课我们来分享蓝桥杯比赛规划,好的规划会给我们的学习带来良好的收益,废话少说接下来就让我们进入学习规划吧,加油哦!!! 一、…

Vue3+Vite项目从零搭建+安装依赖+配置按需导入

环境准备 Vscode/HBuilder等任何一种前端开发工具node.js&npm本地开发环境 源代码管理:Git 技术栈 项目构建 创建项目 npm create vite 依次运行最后三行出现,成功启动项目 在浏览器输入 http://localhost:5173/ 可以显示页面 src别名的配置…

小程序维护外包流程和费用

由于某些原因很多老板想要跟换掉小程序原来合作的开发公司,重新把小程序系统维护外包新的公司。小程序系统外包维护是一个涉及多个方面的过程,需要从需求明确、选择团队到持续优化等多个环节进行细致管理。以下就是小程序系统外包维护主要包括几个关键步…

Meta Llama 3.3 70B:性能卓越且成本效益的新选择

Meta Llama 3.3 70B:性能卓越且成本效益的新选择 引言 在人工智能领域,大型语言模型一直是研究和应用的热点。Meta公司最近发布了其最新的Llama系列模型——Llama 3.3 70B,这是一个具有70亿参数的生成式AI模型,它在性能上与4050…

【数字图像处理】期末实验,基于直方图均衡化实验, 空间域图像增强, 数字图像傅里叶变化、频域图像处理,基于Hough变换的边缘检测

关注作者了解更多 我的其他CSDN专栏 过程控制系统 工程测试技术 虚拟仪器技术 可编程控制器 工业现场总线 数字图像处理 智能控制 传感器技术 嵌入式系统 复变函数与积分变换 单片机原理 线性代数 大学物理 热工与工程流体力学 数字信号处理 光电融合集成电路…

01_Node.js入门 (黑马)

01_Node.js入门 知识点自测 从 index.js 出发&#xff0c;访问到 student/data.json 的相对路径如何写? A&#xff1a;../public/teacher/data.json B&#xff1a;./public/student/data.json C&#xff1a;../student/data.json <details><summary>答案</sum…

React第十七章(useRef)

useRef 当你在React中需要处理DOM元素或需要在组件渲染之间保持持久性数据时&#xff0c;便可以使用useRef。 import { useRef } from react; const refValue useRef(initialValue) refValue.current // 访问ref的值 类似于vue的ref,Vue的ref是.value&#xff0c;其次就是vu…

ThinkPHP知识库文档系统源码

知识库文档系统 一款基于ThinkPHP开发的知识库文档系统&#xff0c;可用于企业工作流程的文档管理&#xff0c;结构化记录沉淀高价值信息&#xff0c;形成完整的知识体系&#xff0c;能够轻松提升知识的流转和传播效率&#xff0c;更好地成就组织和个人。为部门、团队或项目搭…

TIM输入捕获---STM

一、简介 IC输入捕获 输入捕获模式下&#xff0c;当通道输入引脚出现指定电平跳变时&#xff0c;当前CNT的值将被锁存在CCR中&#xff0c;可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数 每个高级定时器和通用定时器都拥有4个输入捕获通道 可配置为PWMI模…

Spring Data JPA 入门

文章目录 前言、Spring Data JPA 是什么&#xff1f;1、背景2、优势3、Spring Data JPA 和 MyBatis-Plus 对比4、Spring Data JPA 与 JPA 的关系是什么&#xff1f; 一、准备1、依赖引入Spring Boot 框架依赖引入&#xff1a;非 Spring Boot 框架依赖引入&#xff1a; 2、定义实…

【Nacos03】消息队列与微服务之Nacos 集群部署

集群部署 集群部署说明 因此开源的时候推荐用户把所有服务列表放到一个vip下面&#xff0c;然后挂到一个域名下面 http://ip1:port/openAPI 直连ip模式&#xff0c;机器挂则需要修改ip才可以使用。 http://SLB:port/openAPI 挂载SLB模式(内网SLB&#xff0c;不可暴露到公网…

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

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

PDF提取文本

1.环境配置 !pip install PyPDF2 pdfplumber PyPDF2 是用来处理 PDF 文件的库&#xff0c;主要功能包括PDF 文件读取、合并、拆分、旋转&#xff0c;可以从 PDF 中提取纯文本&#xff0c;尽管它的提取效果有限&#xff0c;特别是对于扫描版 PDF 文件。 pdfplumber 是比 PyPDF2…

【unity小技巧】分享vscode如何进行unity开发,且如何开启unity断点调试模式,并进行unity断点调试(2024年最新的方法,实测有效)

文章目录 前言一、前置条件1、已安装Visual Studio Code&#xff0c;并且unity首选项>外部工具>外部脚本编辑器选择为Visual Studio Code [版本号]&#xff0c;2、在Visual Studio Code扩展中搜索Unity&#xff0c;并安装3、同时注意这个插件下面的描述&#xff0c;需要根…

Leetcode经典题5--轮转数组

题目描述 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 输入输出示例 &#xff1a; 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右…

【LeetCode】每日一题 2024_12_9 判断国际象棋棋盘中一个格子的颜色(找规律)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动&#xff01; 题目&#xff1a;判断国际象棋棋盘中一个格子的颜色 最近力扣一直在出棋盘类的题目&#xff0c;这个月已经出了 9 天了&#xff0c;我倒要看看他是不是真能出一个月 代码与解题思路 先读题&#xff1a;题…