Linux——界面和用户

本篇文章所写的都是基于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.hqwc.cn/news/644130.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大数据】LSM树,专为海量数据读写而生的数据结构

目录 1.什么是LSM树? 2.LSM树的落地实现 1.什么是LSM树? LSM树(Log-Structured Merge Tree)是一种专门针对大量写操作做了优化的数据存储结构,尤其适用于现代大规模数据处理系统,如NoSQL数据库&#xff…

Rsync数据同步实战:命令操作指南与最佳实践

🚩本文介绍 ​ 在本文中,我们不仅会介绍Rsync的基本概念和特点,还会详细解析Rsync命令的各个参数和选项,让读者能够灵活运用这些命令完成各种数据同步任务。无论您是数据管理员、系统工程师还是IT爱好者,只要您对Rsyn…

可解释的图像分类,提高组织表征的可信度论文速读

Explainable Image Classification with Improved Trustworthiness for Tissue Characterisation 摘要 机器学习模型进行组织表征可以帮助决策并指导安全的肿瘤切除。为了让外科医生信任该模型,需要提供生成的预测的可解释性。对于图像分类模型,像素归…

sudo的设置

sudo指令就是提高你的用户权限,用来完成root可以完成的工作,但是有一个前提,就是被root添加到信任名单中,接下来我们要讲解如何在root中添加用户到信任名单中。 在root中输入指令: 即可到达添加信用列表的位置&#x…

[图解敏捷口号]普天之下皆我妈-01-新手一次走两步

0 00:00:00,830 --> 00:00:03,750 今天我们来看一句敏捷口号 1 00:00:04,030 --> 00:00:05,660 后面我们会 2 00:00:06,300 --> 00:00:09,570 列一些比较幼稚的口号 3 00:00:09,970 --> 00:00:11,145 一句一句 4 00:00:11,145 --> 00:00:12,790 我们来剖析一…

软件3班20240424_2

package com.yanyu;import java.util.ResourceBundle;public class DBTest {// psvmpublic static void main(String[] args) { // 格式化 ctrl alt l // RBResourceBundle bundle ResourceBundle.getBundle("com/yanyu/db"); // CTRL a…

【注解】Mapper的注解 @Mapper、@Repository、@MapperScan

Mapper的注解 Mapper、Repository、MapperScan 一、Mapper1.1、主要作用1.2、示例 二、Repository2.1、主要作用2.2、示例2.3、注意事项 三、MapperScan Mapper 是 Mybatis 的注解,和 Spring 没有关系, Repository 是 Spring 的注解,用于声明…

勾八头歌之RNN

一、RNN快速入门 1.学习单步的RNN:RNNCell # -*- coding: utf-8 -*- import tensorflow as tf# 参数 a 是 BasicRNNCell所含的神经元数, 参数 b 是 batch_size, 参数 c 是单个 input 的维数,shape [ b , c ] def creatRNNCell(a,b,c):# 请在此添加代码…

【复现代码——环境配置】

目录 一、复现代码举例二、创建环境——选择一个Python版本2.1 创建基本环境2.1.1 基于AutoDL2.1.2 基于PyCharm 2.2 终端激活环境2.3 退出环境2.4 删除环境 三、PyTorch安装3.1 查看cuda3.2 安装PyTorch 四、其他依赖安装4.1 tensorboardX4.2 matplotlib4.3 medpy4.4 visdom4.…

【Day 8】MySQL 多表查询 + Mybatis 基础

1 多表查询 笛卡尔积:在数学中,两个集合(A集合 和 B集合)的所有组合情况 在多表查询时,需要消除无效的笛卡尔积 select * from tb_emp,tb_dept where dept_id tb_dept.id;多表查询分为: 连接查询 内连接:相当于查…

5-内核开发-/proc File System 学习

5-内核开发-/proc File System 学习 课程简介: Linux内核开发入门是一门旨在帮助学习者从最基本的知识开始学习Linux内核开发的入门课程。该课程旨在为对Linux内核开发感兴趣的初学者提供一个扎实的基础,让他们能够理解和参与到Linux内核的开发过程中。…

移动零 ----双指针

题目链接 题目: 分析: 上述题目, 是将数组分块, 分为前半非零, 后半零, 这种数组分块题我们首先想到双指针 思路: 定义两个指针, 一个cur 一个dest, cur用来遍历数组, dest 指向分界处的第一个零位置, 将数组分块首先让cur 0; dest 0;cur 遍历数组, 如果cur 0, 那么cur…