Linux系统的用户组管理和权限以及创建用户

1.Linux是多用户的操作系统,正如在Windows系统中可以进行用户账号的切换,Linux同样允许多用户操作。在Linux服务器环境中,通常由多名运维人员共同管理,而这些运维人员各自拥有不同的权限和级别。因此,我们可以根据每个用户的角色、职位和需求,为他们分配相应的权限,以确保服务器的安全性和有效管理。

2.在登陆Ubuntu时,会填写全名、用户名、密码等,所创建的这个用户就是默认用户,其中全名可以类似为一个昵称,用户名为主机名(较正式,不可随意更改)。

3.用户大体上分为三种,分别是:

①普通用户(Ordinary User):这是系统中最常见的用户类型,拥有执行日常任务所需的权限,但通常没有修改系统设置或访问其他用户文件的权限。

②超级用户(Superuser):也被称为root用户,是系统的最高权限用户。超级用户可以执行系统上的所有命令,包括系统配置、文件访问和用户管理等。(用户名就为root)

③系统用户(System User):这些用户通常不用于登录,而是为运行系统服务和应用程序而创建的。

我们在注册Ubuntu时创建的用户是哪一个呢?——旧版本可以先注册root用户后注册其他用户(普通用户),而新版本无法注册root用户,因为其权限很高,日常使用无需过多权限,避免误操作。

4.在Linux系统中,root用户是具有最高权限的超级用户,通常只在需要进行系统级管理操作时使用。什么时候需要使用root用户?

  1. 系统维护和管理

    • 安装、更新或删除软件包,特别是那些需要写入系统目录或更改系统配置的软件。
    • 修改系统文件和目录,比如/etc下的配置文件。
    • 管理用户账户和用户组,包括添加、删除用户或更改用户权限。
    • 执行系统级别的任务,如磁盘分区、格式化或挂载文件系统。
  2. 故障排除和修复

    • 解决系统启动问题,编辑启动加载器的配置文件,如grub
    • 修复文件系统错误或处理磁盘空间不足的情况。
    • 清除系统日志或重置系统设置,以恢复系统正常运行。
  3. 安全相关操作

    • 安装或更新系统安全补丁。
    • 配置防火墙规则或SELinux策略。
    • 审查系统日志,监控潜在的安全威胁。
  4. 资源密集型操作

    • 执行需要大量系统资源的操作,如构建大型软件项目或进行系统备份。

        通常在这些场景下使用root用户或相应的管理员权限,因为这些操作涉及到系统、服务器的关键部分,足以影响到整个系统的安全性和稳定性。然而,由于root用户的权限极高,因此在非必要的时刻应避免使用root用户,以减少误操作带来的风险。相反,我们通常通过sudo命令让普通用户在需要时临时提升权限,以执行特定的管理任务。

5.用户的添加(需要root权限)

useradd 用户名

由上图我们可知,权限不足,需要提升权限,我们可以通过sudo来暂时提高普通用户的权限。

拓展:sudo是什么?

        sudo(superuser do)是在类Unix操作系统中(包括Linux和macOS)常用的一个命令,它允许经过授权的用户以系统管理员(通常是root用户)的权限来运行程序或命令。sudo提供了一种安全的方式来暂时提升用户的权限,而无需用户实际登录为root账户。

        sudo使用时间戳文件来记录用户最近一次成功使用sudo的时间。默认情况下,这个时间戳的有效期大约是5分钟。在这段时间内,用户可以继续使用sudo而不需要重新输入密码。

sudo的基本语法是:

sudo [options] command [arguments]

这里的command是你想以root或其他用户身份运行的命令,arguments是传递给命令的参数。

eg:

如果你想以root用户身份运行apt-get命令来安装软件包,你可以这样做:

sudo apt-get install software-package

这将提示你输入你注册时设置的用户密码(非root的密码)。

sudo的选项

sudo有许多选项可以用来定制其行为,其中一些最常用的是:

  • -u--user:允许你指定以哪个用户的身份运行命令。
  • -i--login:模拟登录环境,通常用于需要环境变量的脚本。
  • -s--shell:启动一个交互式的shell会话,通常是root的shell。

eg:

以另一个用户身份运行命令ls -l(以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。):

sudo -u otheruser ls -l

一般的系统上都默认安装了 sudo 实用程序

 ——————————————————————————————————

接拓展前:

故输入命令并输入密码即可:

sudo useradd user1

 

可通过cat /etc/passwd命令查看所有用户(最后一行就是新建的用户)

使用sudo passwd user1来设定该用户的密码。(若3~5前验证过密码则不会验证,否则注意输入的是新密码还是原来用户的密码)

PS:如果出现“密码未通过字典检查”,可直接忽略,再次输入一遍即可.

6.添加用户时的选项

  • -c--comment "comment": 添加用户信息。
  • -d--home-dir directory: 指定用户的家目录。
  • -m--create-home: 如果未指定家目录,则创建默认的家目录。
  • -s--shell shell: 指定用户的登录shell。
  • -u--uid uid: 指定用户的UID。
  • -g--gid gid: 指定用户的主用户组。
  • -G--groups groups: 将用户添加到额外的用户组。
  • -p--password password: 指定加密的密码。
  • -e--expiredate date: 指定账户的过期日期。
  • -L--inactive days: 指定密码过期后多少天内仍可登录。
  • -f--inactive days: 指定从密码过期开始,多少天后账户失效。
  • -M--no-create-home: 不创建家目录。
  • -N--no-log-init: 不记录到/var/log/lastlog/var/log/faillog
  • -U--no-user-group: 不创建与用户同名的用户组。

 比如,

①创建家目录-m,需要在创建新用户时添加选项。

sudo useradd -m user2

这时进入到/home,并ls就可以看到除了suki以外还有user2。

②指定所在组-g:

输入id回车后可以查看当前用户(suki)的信息,其中gid中1000就是组id,suki就是组的名字,与用户名一样。(也可以查id user1)

sudo useradd -g user2 user3

 把user3分到了user2组中,这时再输入id user3,就会发现gid中括号内为user2。

PS:只输入命令passwd就是设置当前用户的密码。(退出是ctrl+D)

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

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

相关文章

LeetCode 3011.判断一个数组是否可以变为有序

注:这个题目有序的意思是“升序” 解法一:bubblesort O(nlogn) 核心思想:冒泡每次会将一个数归位到最后的位置上,所以我们如果碰到无法向右交换的数字,即可return false class Solution { public:// 返回一个十进制…

《昇思25天学习打卡营第2天|02快速入门》

课程目标 这节课准备再学习下训练模型的基本流程,因此还是选择快速入门课程。 整体流程 整体介绍下流程: 数据处理构建网络模型训练模型保存模型加载模型 思路是比较清晰的,看来文档写的是比较连贯合理的。 数据处理 看数据也是手写体数…

提高项目透明度:有效的跟踪软件

国内外主流的10款项目进度跟踪软件对比:PingCode、Worktile、Teambition、Tower、Asana、Trello、Jira、ClickUp、Notion、Liquid Planner。 在项目管理中,确保进度跟踪的准确性与效率是每位项目经理面临的主要挑战之一。选用合适的项目进度跟踪软件不仅…

800 元打造家庭版 SOC 安全运营中心

今天,我们开始一系列新的文章,将从独特而全面的角度探索网络安全世界,结合安全双方:红队和蓝队。 这种方法通常称为“紫队”,集成了进攻和防御技术,以提供对威胁和安全解决方案的全面了解。 在本系列的第一篇文章中,我们将指导您完成以 100 欧元约800元左右的预算创建…

Sentinel-1 Level 1数据处理的详细算法定义(三)

《Sentinel-1 Level 1数据处理的详细算法定义》文档定义和描述了Sentinel-1实现的Level 1处理算法和方程,以便生成Level 1产品。这些算法适用于Sentinel-1的Stripmap、Interferometric Wide-swath (IW)、Extra-wide-swath (EW)和Wave模式。 今天介绍的内容如下: Sentinel-1 L…

zookeeper的shell操作

一:启动拽库的shell命令行 zkCli.sh -server localhost:2181 退出:quit 二:查询所有的命令 help 三:查询对应的节点 --查询zk上的根节点 ls / ls /zookeeper 四:查询对应节点的节点信息(节点的元数据&a…

idea启动ssm项目详细教程

前言 今天碰到一个ssm的上古项目,项目没有使用内置的tomcat作为服务器容器,这个时候就需要自己单独设置tomcat容器。这让我想起了我刚入行时被外置tomcat配置支配的恐惧。现在我打算记录一下配置的过程,希望对后面的小伙伴有所帮助吧。 要求…

React学习笔记02-----

一、React简介 想实现页面的局部刷新,而不是整个网页的刷新。AJAXDOM可以实现局部刷新 1.特点 (1)虚拟DOM 开发者通过React来操作原生DOM,从而构建页面。 React通过虚拟DOM来实现,可以解决DOM的兼容性问题&#x…

UNIAPP_ReferenceError: TextEncoder is not defined 解决

错误信息 1、安装text-decoding npm install text-decoding2、main.js import { TextEncoder, TextDecoder } from text-decoding global.TextEncoder TextEncoder global.TextDecoder TextDecoder

MySQL 进阶(三)【SQL 优化】

1、SQL 优化 1.1、插入数据优化 1.1.1、Insert 优化 1、批量插入 插入多条数据时,不建议使用单条的插入语句,而是下面的批量插入: INSERT INTO tb_name VALUES (),(),(),...; 批量插入建议一次批量 500~100 条,如果数据量比…

【CSS in Depth 2 精译】2.6 CSS 自定义属性(即 CSS 变量)+ 2.7 本章小结

文章目录 2.6 自定义属性(即 CSS 变量)2.6.1 动态变更自定义属性 2.7 本章小结 当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性 …

讲讲 JVM 的内存结构(附上Demo讲解)

讲讲 JVM 的内存结构 什么是 JVM 内存结构?线程私有程序计数器​虚拟机栈本地方法栈 线程共享堆​方法区​注意永久代​元空间​运行时常量池​直接内存​ 代码详解 什么是 JVM 内存结构? JVM内存结构分为5大区域,程序计数器、虚拟机栈、本地…

头歌---数组之Fibonacci数列

一、数组初始化几种方式 1.数组定义时,数组元素全部赋初值 2.部分数组赋初值 >>>>>前三个元素已知初值 >>>>>后三个元素系统自动赋初值为0 注意: 当定义数组时,如果未对它的元素指定过初值,对于内部局部数组…

【openwrt】Openwrt系统新增普通用户指南

文章目录 1 如何新增普通用户2 如何以普通用户权限运行服务3 普通用户如何访问root账户的ubus服务4 其他权限控制5 参考 Openwrt系统在默认情况下只提供一个 root账户,所有的服务都是以 root权限运行的,包括 WebUI也是通过root账户访问的,…

【C++航海王:追寻罗杰的编程之路】哈希的应用——位图 | 布隆过滤器

目录 1 -> 位图 1.1 -> 位图的概念 1.2 -> 位图的应用 2 -> 布隆过滤器 2.1 -> 布隆过滤器的提出 2.2 -> 布隆过滤器的概念 2.3 -> 布隆过滤器的插入 2.4 -> 布隆过滤器的查找 2.5 -> 布隆过滤器的删除 2.6 -> 布隆过滤器的优点 2.7…

视频监控汇聚平台LntonCVS视频集中存储平台解决负载均衡的方案

随着技术的进步和企业对监控需求的增加,视频监控系统规模不断扩大,接入大量设备已成常态化挑战。为应对这一挑战,视频汇聚系统LntonCVS视频融合平台凭借其卓越的高并发处理能力,为企业视频监控管理系统提供可靠的负载均衡服务保障…

6.Neo4j数据库备份

对neo4j数据进行备份、还原、迁移操作时,要关闭neo4j。 将neo4j作为服务使用进行安装: neo4j install-service 先执行上面的命令,才能执行 neo4j stop 数据备份 执行备份命令: neo4j-admin dump --databasegraph.db --to/ne…

C++的入门基础(二)

目录 引用的概念和定义引用的特性引用的使用const引用指针和引用的关系引用的实际作用inlinenullptr 引用的概念和定义 在语法上引用是给一个变量取别名,和这个变量共用同一块空间,并不会给引用开一块空间。 取别名就是一块空间有多个名字 类型& …

Docker基本管理1

Docker 概述 Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。 Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。 Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自…

Spring Web MVC入门(2)(请求1)

目录 请求 1.传递单个参数 2.传递多个参数 3.传递对象 4.后端参数重命名(后端参数映射) 非必传参数设置 5.传递数组 请求 访问不同的路径就是发送不同的请求.在发送请求时,可能会带一些参数,所以学习Spring的请求,主要是学习如何传递参数到后端及后端如何接收. 1.传递单…