Linux——界面和用户

news2024/11/20 15:33:41

本篇文章所写的都是基于centos 7 64位(通过虚拟机运行)。

一、Linux的界面

Linux操作系统提供了多种用户界面,主要分为图形用户界面(GUI)和命令行界面(CLI)。

1、图形用户界面(GUI)(Graphical User Interface)

Linux的图形界面类似于Windows和macOS系统,提供了图标、窗口、工具栏等元素,使得用户可以通过鼠标点击来执行命令,而不需要记忆和输入命令行指令。Linux有多种桌面环境供用户选择,其中一些较为流行的包括 GNOME、KDE Plasma、XFCE、LXDE等。这些桌面环境不仅外观和操作逻辑不同,对系统资源的需求也有所不同,用户可以根据个人喜好和硬件条件选择最适合自己的桌面环境。

下面就是GNOME经典模式的GUI:

2、命令行界面(CLI)(Command Line Interface)

Linux的命令行界面是一种纯文本界面,用户通过键入命令来与系统交互。对于许多高级用户和系统管理员来说,命令行界面是进行系统管理和执行任务的首选方式,因为它可以提供更精准的控制,并能够通过脚本自动化复杂的任务。在Linux中,常见的命令行界面工具有Bash、Zsh等。

下面就是命令行界面,是一种纯文本界面:

3、如何由图形化界面进入命令行界面

1)快捷键

可以通过按Ctrl + Alt + F2(或F3到F6)来访问一个命令行界面。

2)命令行

打开终端,在终端中输入

init 3

进入命令行界面。

4、如何由命令行界面进入图形化界面

1)快捷键

Ctrl + Alt + F1(或F7)来访问一个图形化界面。

2)命令行

打开终端,在终端中输入

init 5

startx

二、用户

在Linux系统中,用户是指能够登录系统与之交互的实体。这些用户可以是人类用户,也可以是用于运行特定服务的系统用户。Linux系统的用户管理是通过一系列文件和命令实现的,包括但不限于/etc/passwd/etc/shadow/etc/group等文件,以及useraddusermodpasswd等命令。

1、用户类型

在CentOS(以及其他Linux系统)中,主要有两种类型的用户:

  1. 普通用户:普通用户是系统的基本用户,通常用于日常的任务,如编辑文档、运行程序等。出于安全考虑,普通用户对系统资源的访问受到限制,如无法修改系统关键文件。

  2. 超级用户(root):root用户是Linux系统的管理员用户,拥有对系统的完全控制权,可以访问和修改系统上的任何文件,安装软件,以及对系统设置进行更改。因其权限之广,只有在必要时才应以root用户身份登录。

2、用户相关文件与目录

1)/etc/passwd

这是一个文本文件,包含系统上每个用户的信息。每行代表一个用户,包括用户名、用户ID(UID)、用户组ID(GID)、用户全名、家目录以及登录shell。

/etc/passwd文件中的条目stewie:x:1000:1000:stewie:/home/stewie:/bin/bash说明了一名用户的多个属性。其中,x位于用户名和用户ID(UID)之间的位置上,这个x字符表示用户的密码已经不存储在这个文件中了。具体来说,这是一个安全性措施,用于防止密码被不当访问。

在早期的Unix系统中,用户的加密密码实际上是存储在/etc/passwd文件中的。但是,因为/etc/passwd文件对所有用户都是可读的,这就造成了一个安全隐患,任何人都可以读取这个文件,并尝试破解里面的密码。

因此,现代的Unix和类Unix系统,采用了一个更安全的做法:把加密后的用户密码存储在/etc/shadow文件中,而在/etc/passwd文件中的密码位置用一个占位符(如x)来代替。/etc/shadow文件的访问权限被严格控制,只有系统的root用户或者具有特定权限的用户可以访问,这样大大增加了密码存储的安全性。

因此,当在/etc/passwd文件中看到如下格式的条目:

stewie:x:1000:1000:stewie:/home/stewie:/bin/bash

各部分表示:

  • 用户名:stewie
  • 密码占位符:x,表示实际的密码存储在/etc/shadow文件中
  • 用户ID(UID):1000
  • 用户组ID(GID):1000
  • 用户全名:stewie
  • 家目录:/home/stewie
  • 登录shell:/bin/bash

2)/etc/shadow

存储用户密码的加密形式及其相关信息,如密码更改的日期、密码到期的天数等。出于安全考虑,这个文件只有root用户才能访问。

3)/etc/group

包含系统上的所有用户组的信息。用户组允许多个用户分享同样的权限和文件访问权限。

/etc/group 文件中的每一行代表一个用户组,每行的格式通常遵循以下模式:

group_name:password:GID:user_list

这里的各个部分意味着:

  • group_name:用户组的名称。
  • password:用户组密码的占位符。虽然理论上支持为用户组设置密码,但这在实际中很少使用。通常这里会是一个x或者空白,表示密码不被存储在这个文件中。
  • GID(Group ID):用户组的唯一标识符,是一个数字。在Linux系统中,文件和进程等都用这个ID来识别用户组。
  • user_list:属于这个组的用户列表,用户名之间通常用逗号(,)隔开。需要注意的是,这个列表可能为空,因为用户的主要用户组信息是存储在/etc/passwd文件中的,而/etc/group文件中的信息表示用户所属的附加(或次要)用户组。

假设/etc/group文件中有这样一行:

developers:x:1001:alice,bob,charlie

这意味着:

  • 存在一个名为“developers”的用户组。
  • 用户组密码位置用x标记,实际上不在这个文件中存储。
  • 该用户组的GID是1001。
  • 用户“alice”、“bob”和“charlie”是这个组的成员。

4)家目录

每个用户在系统上都有一个家目录,通常位于/home/用户名(root用户的家目录是/root)。这是用户存储个人文件和设置的地方。

3、用户管理指令

1)useradd:创建新用户。

例如,创建一个名为newuser的新用户:

sudo useradd newuser

2)passwd:设置或更改用户密码。

例如,为newuser设置密码:

sudo passwd newuser

需要输入两次密码,一次输入一次确认。

3)userdel:删除用户。

例如,删除newuser用户:

sudo userdel newuser

4)usermod:修改用户属性。

例如,更改newuser的登录shell:

sudo usermod -s /bin/bash newuser

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

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

相关文章

第十五届蓝桥杯省赛第二场C/C++B组D题【前缀总分】题解(AC)

暴力解法 O ( 26 n 5 ) O(26n^5) O(26n5) 枚举将第 i i i 个字符串的第 j j j 个字符改为 c c c 的所有方案,时间复杂度 O ( 26 n 2 ) O(26n^2) O(26n2),修改并计算总分, O ( n 3 ) O(n^3) O(n3)。 暴力优化 O ( 26 n 3 log ⁡ n ) O…

IDEA使用技巧(常用设置、快捷键等)

IDEA使用技巧 一、IDEA常用基本设置设置代码背景颜色/主题/字体Ctrl鼠标滚轮缩放字体大小设置字符编码左右两侧的Project,Structure,Maven等按钮消失新增类似sout,psvm的模版切换某个模块编译的JDK版本 二、常用快捷键CtrlAltT包裹代码Alt回车联想补全Ct…

linux系统下载huggingface文件教程

文章目录 准备工作添加SSH Key生成Access Token 模型下载公开模型下载(bert-base-chinese为例)非公开模型下载(Llama3为例)权限申请官网预训练模型下载huggingface仓库下载 准备工作 添加SSH Key # 本地机器生成ssh key # step1…

Spring 5源码学习

文章目录 一. 访问[spring官网], 找到Spring Framework,点击红色标记github仓库,下载对应的分支代码,本人下载5.1.x二. 安装gradle三. 调整spring-framework配置四. 开始编译五.导入idea 一. 访问[spring官网], 找到Spring Framework&#xf…

Linux离线安装Harbor镜像仓库

一、Harbor简介 Harbor是一个开源的企业级Docker Registry管理项目,由VMware公司开源。它提供了比Docker官方公共镜像仓库更为丰富和安全的功能,尤其适合企业环境使用。Harbor的关键特性包括权限管理(RBAC)、LDAP集成、日志审计、…

《动手学深度学习(Pytorch版)》Task02:预备知识——4.25打卡

《动手学深度学习(Pytorch版)》Task02:预备知识——4.25打卡 数据操作N维数组——张量创建数组访问元素入门初始化矩阵 运算符广播机制索引和切片节省内存转换为其他Python对象转换为NumPy张量ndarray张量转换为Python标量 数据预处理安装pan…

2023平航杯——介质取证部分复现

闻早起的电脑 教徒“闻早起”所使用的笔记本电脑使用何种加密程式? VeraCrypt 教徒“闻早起”所使用的笔记本电脑中安装了一款还原软件,其版本号为?【标准格式:1.2.3.4】 8.71.020.5734 教徒“闻早起”所使用的笔记本电脑中登…

【SpringCloud】OpenFeign高级特性

【SpringCloud】OpenFeign高级特性 文章目录 【SpringCloud】OpenFeign高级特性1. 超时控制1.1 全局配置1.2 指定配置 2. 重试机制3. 替换Http客户端3.1 引入依赖3.2 配置 4. 请求/响应压缩5. 日志打印6. 综合配置 1. 超时控制 默认OpenFeign客户端等待60秒钟,但是服…

【硬件设计】基于LM22679芯片的DC-DC转换器

文章目录 1. DC-DC转换器的基本原理1.1 DC-DC转换器是什么1.2 DC-DC转换器的应用场景 2. LM22679芯片2.1 LM22679芯片特性和基本参数2.2 LM22679原理 3. LM22679电路设计实例 1. DC-DC转换器的基本原理 1.1 DC-DC转换器是什么 DC-DC转换器是一种用于将直流(DC&…

Python打怪升级(4)

在计算机领域常常有说"合法"和"非法"指的是:是否合理,是否有效,并不是指触犯了法律。 random.randint(begin,end) 详细讲解一下这个random是指模板,也就是别人写好的代码直接来用,在Python当中,…

利用弹性云主机部署高效数据库系统

在当今云计算的时代,弹性云主机(EC2)为我们提供了前所未有的灵活性和可扩展性,使得在云端部署高效的数据库系统成为可能。本文将从选择适当的云服务配置、优化数据库设置、建立完备的数据备份与恢复策略,以及加强数据库…

forward 函数在深度神经网络程序中确实用于表示程序逻辑,特别是网络的前向传播过程。它描述了输入数据如何通过网络的每一层,并最终得到输出预测值的流程

在深度神经网络(例如卷积神经网络,CNN)的程序中,forward 函数通常用于描述网络的前向传播(forward pass)过程。前向传播是神经网络的核心操作之一,它指的是输入数据通过网络的每一层&#xff0c…

【漏洞复现】WebLogic XMLDecoder反序列化(CVE-2017-10271)

1、漏洞描述 CVE-2017-10271漏洞产生的原因大致是Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的xml数据甚至能…

基于小程序实现的惠农小店系统设计与开发

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】:Java 【框架】:spring…

蓝桥杯python考级整理

4_1:算术运算符 4_2:基本语法 4_3:基本语法 4_4:列表 4_5:函数 4_6:字符串 4_7:列表 4_8:逻辑运算符 4_9:字典 4_10:函数

ds18b20温度传感器驱动程序

ds18b20驱动程序 有了之前延时的方法,那么实现一个单总线数据传输的传感器驱动程序就非常简单了。下面我们套用杂项驱动框架来编写ds18b20驱动程序。 实现需要明确的是:**ds18b20驱动的本质是通过2440的gpio,通过给定的时序对ds18b20的读写数…

如何在阿里云快速配置自动定时重启ECS云服务器?

背景 无论是电子商务、在线教育、游戏,还是流媒体等业务,服务器的稳定运行都是至关重要的。然而,在实际运行中,我们可能会遇到这样一些场景: 系统更新:一些操作系统或者软件的更新可能需要重启服务器才能…

【课程发布】软考高项目十大管理ITTO宫殿记忆法新版第四版正式发布

软考高项十大管理ITTO宫殿记忆法视频课程: 平台:荔枝微课 连接:十方教育 各位软考高级信息系统项目管理师考生好,新版第四版十大管理ITTO宫殿记忆法视频课程终于发布了,之前苦等的考生终于迎来了救星,再也…

深入理解MySQL中的UPDATE JOIN语句

在MySQL数据库中,UPDATE语句用于修改表中现有的记录。有时,我们需要根据另一个相关联表中的条件来更新表中的数据。这时就需要使用UPDATE JOIN语句。最近我们遇到了这样的需求:我们有一张历史记录表,其中一个字段记录了用,连接的多…

Zephyr学习记录

一、Zephyr是什么? Zephyr 是 Linux 基金会推出的一个适用于物联网的小型可伸缩的实时操作系统,支持多种处理器架构。Zephyr 是安全的、开源的、模块化的以及支持多种连接方式。与华为的liteos很像,也不知道谁抄的谁。 二、官方资料 官方介…