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)命令行

打开终端,在终端中输入

bash 复制代码
init 3

进入命令行界面。

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

1)快捷键

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

2)命令行

打开终端,在终端中输入

cpp 复制代码
init 5

cpp 复制代码
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文件中看到如下格式的条目:

bash 复制代码
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 文件中的每一行代表一个用户组,每行的格式通常遵循以下模式:

bash 复制代码
group_name:password:GID:user_list

这里的各个部分意味着:

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

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

bash 复制代码
developers:x:1001:alice,bob,charlie

这意味着:

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

4)家目录

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

3、用户管理指令

1)useradd:创建新用户。

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

cpp 复制代码
sudo useradd newuser

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

例如,为newuser设置密码:

cpp 复制代码
sudo passwd newuser

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

3)userdel:删除用户。

例如,删除newuser用户:

bash 复制代码
sudo userdel newuser

4)usermod:修改用户属性。

例如,更改newuser的登录shell:

bash 复制代码
sudo usermod -s /bin/bash newuser
相关推荐
wusam6 分钟前
螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习04(环境准备)
学习·docker·centos
康熙38bdc1 小时前
Linux 进程优先级
linux·运维·服务器
hhzz1 小时前
Linux Shell编程快速入门以及案例(Linux一键批量启动、停止、重启Jar包Shell脚本)
android·linux·jar
只是有点小怂1 小时前
parted是 Linux 系统中用于管理磁盘分区的命令行工具
linux·运维·服务器
三枪一个麻辣烫2 小时前
linux基础命令
linux·运维·服务器
cuisidong19972 小时前
如何在 Kali Linux 上安装 Google Chrome 浏览器
linux·运维·chrome
光通信学徒3 小时前
ubuntu图形界面右上角网络图标找回解决办法
linux·服务器·ubuntu·信息与通信·模块测试
南种北李3 小时前
Linux自动化构建工具Make/Makefile
linux·运维·自动化
小飞猪Jay3 小时前
面试速通宝典——10
linux·服务器·c++·面试
暗恋 懒羊羊4 小时前
Linux 生产者消费者模型
linux·开发语言·ubuntu