当前位置: 首页 > news >正文

Linux用户-普通用户

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注我,我尽量把自己会的都分享给大家,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

Linux是一个多用户多任务操作系统,这意味着它可以同时支持多个用户登录并使用系统。但是我们之前所有的操作都是基于超级管理员root来操作的,但是从Linux设计来说,是不推荐的。因为root的权限太大,所以才需要使用普通用户来进行日常运维,那如果普通用户需要做的操作需要root权限的时候又该怎么做呢?我们将通过以下几个方面来讲解。

1.Linux用户(本章节)

2.Linux用户组

3.SU命令

4.SUDO命令

用户介绍

Linux操作系统的用户体系非常灵活,这使得它成为了一个很好的多用户系统。它有三种类型的用户:超级用户(root),系统用户和常规用户。

  1. 超级用户 (root):在Linux系统中,超级用户是权限最高的用户,被称为根用户,也就是root用户。超级用户可以执行任何命令,包括系统设置、软件安装、用户和权限管理等。root用户的权限等同于Windows系统中的管理员权限。

  2. 系统用户:系统用户主要是为了运行某些服务或者守护进程(daemon)而创建的。这些系统用户通常不会具有登录shell,也就是说,它们不能直接登录系统。例如,邮件系统会有一个名为 mail 的系统用户,网页服务器可能会有一个名为 www 或 http 的用户。

  3. 常规用户:这些用户是进行日常工作的用户,他们可以登录系统并运行各种应用程序。但是,他们不能对系统进行修改,也不能访问其他用户的文件,除非这些文件被明确地赋予了访问权限。你在安装Linux系统后创建的第一个用户就是常规用户(也可以不创建),通常这个用户会被赋予使用sudo命令的权限,也就是说,这个用户可以执行一些需要root权限的命令。

在Linux系统中,每个用户都有一个唯一的用户ID(UID),系统内部通过UID来识别用户。UID 0通常被赋予root用户,UID 1-999一般为系统用户,1000以上的UID用于常规用户。

用户命令

Linux 用户管理可以通过命令行进行,以下是一些常用的用户管理命令:

  1. useradd [options] username:创建新的用户。例如 useradd -m username 将会创建一个新的用户,并创建用户的主目录。

  2. passwd username:设置或修改用户的密码。不加用户名则默认修改当前用户,只有root可以修改其他用户的密码。

  3. userdel [options] username:删除用户。例如 userdel -r username 将会删除用户以及用户的主目录。

  4. usermod [options] username:修改用户的信息。例如 usermod -l newname username 将会修改用户的用户名。

  5. groups username:显示用户所属的组。

  6. id username:显示用户的 UID(用户 id)、GID(用户组 id)以及所属的组。

  7. su username:切换到其他用户。例如 su - username 将会切换到用户,并加载用户的环境变量。

  8. whoami:显示当前的用户名。

  9. who:显示当前登录的所有用户。

  10. last:显示系统的登录记录。

注意在使用这些命令时可能需要 root 权限,可以使用 sudo 命令获取 root 权限。例如 sudo useradd username

用户管理

[root@localhost ~]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bash#省略中间部分nginx:x:997:995:Nginx web server:/var/lib/nginx:/sbin/nologinntp:x:38:38::/etc/ntp:/sbin/nologin#省略中间部分user01:x:1000:1000::/home/user01:/bin/bash

/etc/passwd 文件中的每一行都代表系统上的一个用户账号,每行由多个字段组成,字段之间使用冒号(:)分隔。典型的字段包括:

  • 用户名:用户的登录名。

  • 密码占位符:(在现代系统中通常是 x)原本是存储加密的密码,现在通常是存储在 /etc/shadow 文件中,或者指向其他安全存储的文件。

  • 用户 ID (UID):唯一标识符,用于系统内部识别用户。

  • 组 ID (GID):该用户所属的主要组的标识符。

  • 用户描述:一般是用户的全名或注释。

  • 主目录:用户登录后所处的初始目录。

  • 登录 Shell:用户登录后默认使用的 Shell 程序。

root 属于超级管理员,无论用户ID还是组ID都是0nginx&ntp 属于系统用户,都是服务自带的用户,/sbin/nologin 就是不允许登录,包括ssh和通过控制台user01 属于常规用户,属于通过useradd 增加的用户的,没有nologin就是允许ssh和通过
[root@localhost ~]# cat /etc/shadowroot:*:18961:0:99999:7:::#省略中间部分ntp:!!:19885::::::user01:!!:19893:0:99999:7:::

/etc/shadow 文件用于存储用户账号的加密密码、密码过期信息以及账号是否被锁定等敏感信息。相比于 /etc/passwd 文件,它具有更高的安全性,因为普通用户无法直接读取此文件。

  1. 文件结构

    • 用户名:与 /etc/passwd 中的用户名对应。

    • 加密密码:使用密码哈希算法加密后的密码。实际密码不会直接存储在此处,只存储其哈希值。

    • 密码最后更改日期:自 Unix 时间戳起,距离上次更改密码的天数。

    • 密码更改最短天数:两次密码更改之间的最小天数间隔。

    • 密码更改最大天数:密码的有效期,超过此期限用户需要强制更改密码。

    • 密码过期前警告天数:密码即将过期前,提前多少天发出警告。

    • 账号失效日期:账号失效的日期,即停止使用该账号的日期。

    • 账号标志:包含有关账号当前状态的其他信息,例如是否被锁定等。

    • 每一行对应一个用户账号,字段之间用冒号(:)分隔。

    • 典型的字段包括:

  2. 访问权限/etc/shadow 文件具有非常严格的访问控制,通常只有 root 用户或具有相应特权的用户能够读取和修改此文件。这是为了确保用户密码和账户信息不被未经授权的用户获取。

总结

1.如果自己是一个普通运维角色,我们能拿到的账号和密码,应该是一个普通用户和密码。

2.如果自己是运维管理员的情况,则分配给其他人的账号也只能是一个普通账号。

3.普通用户可以可以通过susudo命令来提升自己的权限,用于完成需要超级管理员权限才能完成运维的操作。

4.当然,这并不是标准方案,你可以根据自己的实际情况选择。

5.有的应用程序则要求必须使用非root用户启动,比如es,使用root则会被提示不允许使用root启动。

相关文章:

Linux用户-普通用户

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注我,我尽量把自己会的都分享给大家,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux是一个多用户多任务操作系统,这意味着它可以同时支持多个用户登录并使用系统。…...

世界顶级思想家颜廷利:生命的升华,人类与动物的进化之道

世界顶级思想家颜廷利:生命的升华,人类与动物的进化之道 动物在于进化, 人类载于净化…(升命学说) 当代世界最著名的哲学家颜廷利教授指出,在探索生命奥秘的广阔旅程中,我们不禁惊叹于大自然…...

团队心脏:项目比赛中激发团队潜力的策略与技巧

团队心脏:项目比赛中激发团队潜力的策略与技巧 前言项目负责人的角色定位执行力的重要性提升个人执行力的策略团队协作的关键持续学习与创新应对挑战的态度总结与反思结语 前言 在项目管理的世界里,每一次比赛都是一场没有硝烟的战争。作为项目负责人&am…...

Qt安卓开发的一些概念

目录 1、Android 版本和 API 的对应关系? 2、ABI是什么 2.1、x86_64 2.2、x86 2.3、arm64-v8a 2.4、armeabi-v7a 3、不同架构的特点 3.1、32位 ARM 架构 (ARMv7) 3.2、64位 ARM 架构 (ARMv8-A) 3.3、32位 Intel 架构 (x86) 3.4、64位 Intel 架构 (x86-64…...

语音交互、AI问答,等你来体验!

功能背景 在实际大屏应用中,用户向大屏直接下达语音指令显的越来越便捷,其中体现的交互感也比通过动作指令来的更加强烈,给用户带来更高效的服务体验。目前EasyV平台开发的自定义事件交互已经很完善,组件之间可以进行触发联动。 …...

深度对比分析python和RPA,为什么会python了,还要用RPA?

我们需要先理解Python和RPA(Robotic Process Automation)的基本概念以及它们各自的特点和优势,才能真正理解在业务场景中,两者各自可能发挥的实际应用价值和潜在的商业化价值。 Python和RPA的定义及比较 1. Python: …...

el-table支持行拖动

<template><div ref"sortable-wrapper"><slot /></div> </template><script> import sortable from sortablejs;export default {props: {handle: { // 拖动元素type: String,default: },data: { // 列表数据type: Array,defaul…...

git拉取项目并切换到某个tag

从GitHub上拉取特定标签&#xff08;tag&#xff09;的项目可以通过以下步骤完成。标签通常用于标记项目中的特定版本或发布版本&#xff0c;因此通过拉取特定标签&#xff0c;你可以获取到项目在该版本下的完整代码和文件。 使用Git命令行工具 打开终端或命令行工具&#xff…...

数据结构之探索“堆”的奥秘

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构&#xff08;Java版&#xff09; 目录 堆的概念 堆的创建 时间复杂度分析&#xff1a; 堆的插入与删除 优先级队列 PriorityQ…...

光影漫游者:高科技球形场馆开启沉浸式体验新时代—轻空间

轻空间&#xff08;江苏&#xff09;膜科技有限公司的自主品牌“QSPACE轻空间”推出的“光影漫游者”&#xff0c;是一款突破传统的创新球形场馆。这款产品自问世以来&#xff0c;以其独特的设计和卓越的功能迅速成为各类活动和展览的焦点。光影漫游者不仅以其时尚的外观吸引了…...

面试题007:static修饰符可以修饰什么,static的重要规则

在Java类中&#xff0c;可用static修饰属性、方法、代码块、内部类 。static关键字修饰的成员被称为静态成员。 被修饰后的成员具备以下特点&#xff1a; 随着类的加载而加载 优先于对象存在 修饰的成员&#xff0c;被所有对象所共享 访问权限允许时&#xff0c;可不创建对…...

EasyTwin的动画系统已经到了next level?快来一探究竟!

在实际的数字孪生项目场景建设中&#xff0c;水利项目中的洪水推演、工业领域的工程施工模拟、车间产线运转、机械装置和零件配置展示等项目场景&#xff0c;都对动画效果有很强的使用需求&#xff0c;这是对渲染软件和设计师能力的极大考验&#x1f198;。 别担心&#xff01…...

当业务开展遇到阻力,如何开展?

1&#xff1a;先够通问题&#xff0c;看能否通过及时的沟通解决掉问题阻力&#xff08;相信你已经做过了无功而返&#xff09; 2&#xff1a;全面思考这个问题&#xff0c;这个事情对方做了对他有什么好处&#xff1f;对大家的公共目标有什么好处&#xff1f;尝试说服 3&#x…...

萨科微半导体整流桥

金航标kinghelm萨科微总经理宋仕强介绍说&#xff0c;萨科微半导体的整流桥热销型号及其主要参数?萨科微的整流桥热销型号有 DB207S&#xff0c;其主要参数有&#xff1a;反向工作电压&#xff08;VRRM&#xff09;为 1000V、直流输出电流&#xff08;Io&#xff09;为 2.0A、…...

STM32的GPIO输入输出方式设置示例

1、GPIO口做基本的输入/输出口使用时&#xff0c;输入有上拉输入、下拉输入、浮空输入&#xff08;既无上拉电阻也无下拉电阻&#xff09;3种输入方式&#xff1b;输出有开漏输出、推挽输出2种输出方式。 2、示例 &#xff08;1&#xff09;示例1&#xff1a;GPIO做输出的设置…...

SQL插入、更新和删除数据

SQL插入、更新和删除数据 一、直接向表插入数据 1.1、插入完整的行 这里所说的完整行指的是包含表内所有字段的数据行&#xff1b;假设表中有n个字段&#xff0c;则插入完整行的语法&#xff1a; INSERT INTO 表名或视图名 VALUES(字段1的值,字段2的值,字段3的值,...,字段n的…...

如何将幻灯片中的图片背景设置为透明

在制作幻灯片时&#xff0c;我们经常需要插入图片来丰富内容&#xff0c;提升视觉效果。但有时&#xff0c;图片的背景可能会干扰幻灯片的整体设计&#xff0c;这时将图片背景设置为透明就显得尤为重要。本文将详细介绍如何在常用的幻灯片制作软件中实现这一效果&#xff0c;帮…...

【雅思考试】-- Day2 - 单词

雅思单词 WordPOSDefinitionWordPOSDefinition1reliabilityn.可靠性16facilitatev.促进&#xff1b;助长2goaln.目标17expectationn.期待&#xff1b;期望&#xff1b;预期3strengthn.力量&#xff1b;力气&#xff1b;实力18reinforcen.加强&#xff1b;加固&#xff1b;强化4…...

.\venv\Scripts\activate : 无法加载文件 E:\,因为在此系统上禁止运行脚本。

问题描述&#xff1a; 问题原因&#xff1a; Windows PowerShell 的执行策略用于控制脚本的运行权限和安全性。 以下是几种常见的执行策略及其特点&#xff1a; AllSigned&#xff1a;只允许运行经过数字签名的脚本。这意味着无论是本地创建的还是从网络获取的脚本&#xff0…...

C++之explicit

在 C 中&#xff0c;explicit 是一个关键字&#xff0c;用于修饰单参数的构造函数&#xff0c;防止它们被用于隐式类型转换。理解 explicit 关键字涉及以下几个方面&#xff1a; 1. 隐式类型转换 在 C 中&#xff0c;单参数的构造函数可以被用于执行隐式类型转换&#xff0c;…...

基于FPGA的以太网设计(4)----详解PHY的使用(以YT8531为例)

目录 1、前言 2、如何了解PHY芯片? 2.1、总览 2.2、管脚 2.3、编码 2.4、自协商 2.5、环回模式 2.6、睡眠模式 2.7、复位 2.8、PHY地址 3、PHY芯片的寄存器配置 3.1、Basic Control Register (0x00) 3.2、Basic StatusRegister (0x01) 3.3、PHY Specific Status…...

机器学习之心一区级 | Matlab实现SMA-Transformer-LSTM多变量回归预测(黏菌算法优化)

机器学习之心一区级 | Matlab实现SMA-Transformer-LSTM多变量回归预测&#xff08;黏菌算法优化&#xff09; 目录 机器学习之心一区级 | Matlab实现SMA-Transformer-LSTM多变量回归预测&#xff08;黏菌算法优化&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介…...

idea导入项目根目录缺失解决方法

点击File→Project Structure 在弹出的界面选择Modules→→import Module,然后选择你导入文件点击OK, 选择导入类型next→勾选Search for projects recursively(递归寻找项目)→next→Finish最后选择根目录点击OK即可。...

VMware虚拟机下ubuntu配置

VMware虚拟机下ubuntu配置 1 Ubuntu换源2 安装VMware Tools2.1 一般安装2.2 代码安装 3 安装中文输入法参考 VMware虚拟机安装及虚拟机下安装ubuntu可参见另一博客-VMware虚拟机安装及虚拟机下安装ubuntu 1 Ubuntu换源 Ubuntu换源的主要用途是通过更换软件源来提高软件下载速…...

回调函数复习

#include <iostream>// 定义一个回调函数类型 typedef void (*CallbackFunction)(int);// 函数接受一个回调函数作为参数 void performOperation(int value, CallbackFunction callback) {// 执行某些操作std::cout << "Performing operation with value: &qu…...

开源AI智能名片O2O商城微信小程序在顾客价值链优化中的应用与探索

摘要&#xff1a;随着信息技术的飞速发展&#xff0c;顾客的消费行为模式正经历着前所未有的变革。在这一背景下&#xff0c;开源AI智能名片O2O商城微信小程序作为一种创新的营销与服务平台&#xff0c;正逐步成为企业连接顾客、优化顾客价值链的重要工具。本文旨在探讨开源AI智…...

idea-springboot后端所有@注释含义汇总-持续更新!

&#xff08;1&#xff09;启动类 ①SpringBootApplication 出现这个代表这个就是整个程序的入口&#xff0c;是运行的开始位置 ②ComponentScan("com.example.dao.impl") 启动时自动扫描制定beans包 &#xff08;2&#xff09;mapper层&#xff08;Dao层&#xf…...

七:C语言-数组

七&#xff1a;C语言-数组 数组是一组相同类型元素的集合数组中存放的是1个或者多个数据&#xff0c;但是数组元素个数不能为0数组中存放的多个数据&#xff0c;类型是相同的数组分为一维数组和多维数组&#xff0c;多维数组一般比较多见的是二维数组存放在数组中的值被称为数…...

【numpy】浮点数比较大小

对于浮点数的比较&#xff0c;由于浮点数的精度问题&#xff0c;直接比较可能会遇到精度不一致的情况。为了比较浮点数的大小&#xff0c;可以使用一定的容差范围&#xff0c;避免因微小的误差导致的错误判断。使用 np.isclose() 或 np.allclose() 函数可以方便地进行这种比较。…...

ISC.AI 2024周鸿祎:发展安全大模型是安全迈向“自动驾驶”的必由之路

7月31日&#xff0c;ISC.AI 2024第十二届互联网安全大会在北京盛大开幕。360集团创始人周鸿祎就“打造安全大模型 引领安全行业革命”主题发表演讲。周鸿祎表示&#xff0c;发展安全大模型是安全迈向“自动驾驶”的必由之路&#xff0c;也是成功之路&#xff0c;而落地安全大模…...