第七章 系统管理和维护

news2024/7/6 18:04:58

第七章 系统管理和维护

​ 当我们要登录系统或访问系统的某个资源时,通常都要求输入用户名和密码,从系统的角度看,用户就是一种进行认证或授权的标识。只有通过认证的用户才能访问相应的资源,而对于同一个资源,不同的用户又有不同的访问权限。比如要在公司网络中配置一台网络服务器,只允许本公司的员工才能从服务器上浏览和下载文件,而且只允许行政部员工对文件的内容进行修改。这些都是在系统运维中经常遇到的问题。而解决这些问题我们都要用到用户和组。

1.用户和组的基本概念

  1. 用户账号的类型

    在Linux系统中,根据系统管理的需要将用户账户分为三种类型:超级用户、普通用户、系统用户。

    • 超级用户:root是系统的超级用户,使用该账号,管理员可以突破一切限制,方便系统的维护。由于root权限太大,所以不建议用root直接登录,而是采用普通用户登录,需要进行权限维护时才切换至root登录。
    • 普通用户:该账户需要由root或其他管理员创建,一般只在用户的家目录拥有全部权限。
    • 系统用户:这类用户最大的特点是不能登录系统。而主要是让后台进程以非管理员的身份运行。它们大都是在安装系统是自动添加的。
  2. 用户组的类型

    在Linux系统中,每个用户账号至少属于一个组,这个组称为该用户的基本组。与Windows不同的是,**在Linux中创建一个用户账号,就会自动创建一个与该账号同名的组。**比如我们创建了一个student用户,就会自动创建一个student的用户组。

    ​ 在Linux系统中,每一个用户可以同时加入多个组,这些用户又另外加入的组叫附加组。

  3. UID和GID

    ​ UID(User Identifier,用户标识符),是系统中每一个用户的唯一标识符,对于系统核心来说,UID是区分用户的基本依据,root用户的UID固定为0,系统用户的账号为1-999之间,1000-60000的账号被划分给普通用户。

    ​ 每一个组也有一个数字形式的标识符-GID(Group Identifier,组标识符)。它们的分组标号和UID一样。

    ​ 需要注意的是,Linux系统也只是识别UID和GID来区分用户的组,至于用户名和组账号是方便人们记忆而已。

  4. 利用id查看用户信息

id ztr								# 查看ztr用户的基本信息
gpasswd -a ztr root					# 将ztr加入到root组

5.用户账号文件:/etc/passwd

该文件的组成:

用户:密码占位符:UID:GID:描述信息:家目录:用户所使用的shell命令

6.用户密码文件:/etc/shadow:由于/etc/passwd是所有用户可读的,这样就导致了用户和密码容易被泄露,因此Linux将用户的密码信息从/etc/passwd中分离出来,单独放在了/etc/shadow文件中。该文件又被称为影子文件,只有root用户拥有权限,从而保证用户密码的安全性。

在这里插入图片描述

​ 我们可以通过useradd命令添加的用户student和teacher,设置密码,我们可以通过如下命令来设置密码:

useradd student
useradd teacher
passwd student

​ 我们可以从该文件看到,密码都是通过加密处理的。我们常用的加密方式有两种:MD5和SHA。在Linux系统中使用SHA的加密方式加密。

echo -n '123' | md5sum							# 将123采用md5的方式加密
echo -n '123' | sha1sum							# 将123采用sha的方式加密
# 这两种就加密方式的区别是MD5加密成128位的字符-32个字符,SHA加密成160位的字符-40位

​ /etc/shadow文件中包括9个配置字段,其中第一个字段表示用户名,第2个字段表示使用HASH加密的密码。密码由"$"分成3部分:

  • 第一部分"$6":表示所采用的加密方式,Linux所提供的加密方式由md5,sha1,sha224,sha256,sha512等,"$6"对应的是sha512的加密方式;

  • 第二部分:是在密码中加入随机数salt,它的作用是防止用户使用相同的密码,而导致加密后的密码串也相同;

  • 第三部分:密码加密后的密码串,但是这些密码串都是通过重新编译后再存放的。

    后面的数字表示密码最后一次更改距计算机元年的天数

    echo $[18952/365]
    

2.用户和组的操作

2.1.创建用户

我们可以使用命令useradd来添加命令,格式如下:

useradd 用户									# 新增用户
# 通过创建用户,设计到更改的目录有/etc/passwd  /etc/shadow  /etc/group  /etc/gshadow
  /home   /home/用户

useradd命令常用选项:

  • -u选项:给用户指定一个UID,要求该UID未被其他用户占用。
useradd -u 1004 user2						  # 创建user2的用户并指定UID位1004
tail -1 /etc/passwd
# user2:x:1004:1004::/home/user2:/bin/bash

  • **-d选项:指定用户的家目录:**普通用户的家目录都是指定在/home目录下,我们可以通过-d选项指定到某一目录下。
useradd -d /admin admin						# 创建一个admin用户到/admin目录 
  • -g选项:指定创建用户的基本组
useradd -g admin user3						# 创建user3用户并指定admin的用户基本组-不会创建user3组
tail /etc/group								# 查看组文件并没有user3用户基本组
  • -G选项:指定创建用户附加组
useradd -G admin user4						# 创建user4并指定附加组admin
id user4									# 创建了user4的基本组,并归于admin的附加组
  • -e选项:指定用户账号的失效时间,可使用yyyy-mm-dd的日期格式
useradd -g users -e 2021-11-11	temp01		# 创建一个2021-11-11失效的的用户temp01并指定users用户组

2.2.修改密码

​ 在Linux系统中我们需要定期的修改密码来确保账户的安全性,修改密码的命令是passwd,其语法格式为:

passwd 用户名

​ 注意:只有root用户才能修改所有用户的密码,只有本用户才能修改自己的密码。

  • -d选项:清除密码
passwd -d user1										# 清除密码

​ 用户的密码被清除后,无需使用密码就可以实现本地登录,但远程登录始终是需要密码的。

  • -u选项:解锁用户
passwd -u user2										# 将用户user2解锁
  • –stdin选项:从文件或管道读取密码:由于在用passwd密令设置或修改密码时,需要用户反复进行确认,而这很难复合自动化运维的需要,因而在实际操作中,需要使用–stdin选项与管道配合,从而自动化完成密码设置。-该种方式只能在centos上使用,不适用ubuntu。
echo '123' | passwd --stdin user1							# 无需确认,直接为user1设置密码

echo user1:'123' | chpasswd								# ubuntu系统使用方式

2.3.切换用户命令

​ 切换用户身份可以使用su(switch user)命令来实现,基本格式为:

su [-] [用户名]

​ 如果不加"-“,工作目录还在原来的目录,如果加了”-"就变成了切换后用户的家目录

需要注意的是,从管理员切换到普通用户不需要输入密码,从普通用户切换到管理员需要输入密码。

2.4.切换用户的属性

​ 对于系统已经存在的用户账号,如果要修改其属性信息可以直接编辑/etc/passwd文件中的相关数值,也可以使用usermod(user modify)命令重新设置。

​ usermode和useradd命令的选项基本一致。

  • -m,-d选项:修改用户的家目录
usermod -m -d /home/admin admin				# 将admin的家目录移动到/home/admin下
  • -l选项:更改用户的账号名称:
usermod -l master admin						# 将admin用户的账号改为master
grep master /etc/passwd
  • -g选项:更改用户的基本组:
usermod -g ftp master						# 将master的基本组改为ftp
id master
  • -G,-a选项:更改用户的附加组:
usermod -G root master						# 将master用户附加组改为root

用这个选项修改附加组会将之前的附加组清空并重新设置。如果需要保留之前用户的附加组,那么就需要结合-a选项。

gpasswd -a student root						# 将student加入到root组
usermod -a -G ztr student					# 将student加入到ztr附加组,并且不覆盖之前的
id student

3.用户组的管理

3.1.用户组的配置文件

​ 与组账号相关的配置文件有两个:/etc/group/etc/gshadow。前者保存组账号名称、GID、组成员等基本信息,后者用于保存组账号的加密密码字符串等信息。

grep "^root" /etc/group							# 查看root组的信息	
# root:x:0:student

  • 第一个字段:组名
  • 第二个字段:组密码占位符x
  • 第三个字段:GID
  • 第四个字段:以改组为附加组的用户列表,注意,以该组为基本组的账号不会显示。

3.2.创建用户组

​ 创建用户组使用命令groupadd

groupadd class3									# 创建class3的用户组
tail -1 /etc/group
  • -g选项:指定GID号
groupadd -g 2000 class2						# 创建用户组,并指定GID为2000
tail -1 /etc/group

3.3.添加、删除组成员

gpasswd命令本来是设置组账号的密码,但是该功能极少使用,实际上该命令更多的是添加、删除组成员,对应的选项为-a、-d。

gpassswd [选项] 用户名 组名

注意:gpasswd命令改变的是用户的附加组,将用户加入到某个组之后,该组将称为一个用户的附加组。

gpasswd -a student teacher						# 将student用户加入到teacher组
id student										# 基本组不变

---------------------
gpasswd -d student teacher						# 将student从teacher组删除

3.4.删除用户组

​ 如果要删除的组是某些用户的基本组,那么就得先删除这些用户,才能删除用户基本组。使用命令groupdel便可以完成这些操作:

gpasswd -a super class1							# 将class1设为super的附加组
groupdel class1									# 删除class1用户组
-------------------------
usermod -g class2 super							# 将class2设为super的基本组
groupdel class2									# 此时无法删除
usermod -g admin super							# 将admin设为super的基本组
groupdel class2									# 此时才能删除

4.软件包管理

4.1.软件包简介

​ 软件包是Ubuntu系统中软件及其文档的提供形式。一般而言,软件包中包括源程序软件包和二进制软件包。源程序软件包主要提供源代码以及二进制软件包的制作方法;二进制软件包是经过封装的可执行程序及其相关文档和配置文件等,它通常是压缩文档,其中包含软件信息、程序文件、配置文件、帮助文档、启动脚本和控制信息等内容。用户可以方便地通过二进制软件包安装、升级和删除软件。

​ Ubuntu软件包地格式不同于其他Linux系统,其主要格式是DEB格式。这种格式最早是Debian Linux使用地,Ubuntu本质上是从Debian发展而来地,因此也沿用了DEB格式。Linux操作系统中的DEB包类似于Windows上的软件包,不需要复杂的编译即可通过鼠标单击安装使用。Ubuntu软件仓库中提供的软件包均采用了这种封装,apt-get、aptitude、synaptic等软件管理工具均支持DEB包。DEB包存在依赖关系,常见的依赖关系有Depends、Recommends和Conflicts等。假设有两个DEB包—A和B,若软件包A和B之间存在Depends关系,即A依赖B,则意味着安装软件包A时也要安装软件包B;Recommends关系意味着开发者推荐用户在安装软件包A时系统必须已经安装了软件包B;Conflicts则意味着软件包A和B不能同时存在,相互冲突。

​ Ubuntu还支持Redhat格式的软件包,即RPM格式,Redhat的派生系统(Fedora、CentOS等)也支持此格式的软件包。此外Ubuntu还支持Tarball格式的软件包,这是一种将大量文件(包括其目录结构)组合成单个文件的大型文件集合。Tarball使用tar命令组合多个文件,生成一个文件,以便于系统中常用的ZIP或RAR压缩文件。Tarball文件的扩展名一般为.tar.gztar.bz2等,可用于装配源代码或二进制代码文件。Tarball常常用于开源社区分发源代码,对于tar.gz文件,在终端中执行tar xvf filename命令将想要的文件解压,再执行其中包含软件的安装命令即可。

4.2.高级软件包管理工具APT

​ APT(Advance Packaging Tool,高级打包工具)是Ubuntu软件包管理系统的高级界面。Ubuntu基于Debian,APT由几个名字以"apt-"打头的程序组成,包括apt-get、apt-cache和apt-cdrom等,这些都是处理软件包的命令行工具。

​ APT是一个客户/服务器系统,再服务器上先复制所有DEB包,然后用APT的分析工具(genbasedir)根据每个DEB包的包头(header)信息对所有的DEB包进行分析,并将该分析结果记录在一个文件中,这个文件称为DEB索引清单,APT服务器的DEB索引清单置于base文件夹内。一旦APT服务器内的DEB包有所变动,就必须使用genbasedir分析工具产生新的DEB索引清单。客户端在进行安装或升级时先要查询DEB索引清单,从而可以获知所有具有依赖关系的软件包,并一同下载到客户端,以便安装。

​ 当客户端需要安装、升级或删除某个软件包时,客户端计算机取得DEB索引清单压缩文件后,会将其解压并放于/var/state/apt/lists目录下,而客户端执行apt-get installapt-get upgrade命令的时候,就会将这个目录下的数据或客户端计算机内的DEB数据库比对,从而知道哪些DEB已安装、未安装或可以升级。

apt-get提供了一个用于下载和安装软件包的建议命令行界面,在其中可以执行很多命令,最常用的是updateinstall。命令解释如下:

  • update:取回更新的软件包列表信息
  • upgrade:进行一次升级
  • install:安装新的软件包(注意,报名时libc6而非libc6.deb)
  • remove:卸载软件包
  • autoremove:卸载所有自动安装且不再使用的软件包
  • purge:卸载并清除软件包的配置
  • source:下载源码包文件
  • build-dep:为源码包配置编译依赖关系
  • dist-upgrade:发布版升级
  • dselect-upgrade:根据dselect的选择进行升级
  • clean:删除所有以下载的包文件
  • autoclean:删除老版本的已下载的包文件
  • check:核对已确认系统的依赖关系的完整性
  • changelog:下载和显示包文件的修改日志
  • download:下载二进制包文件到当前目录

命令的选项如下:

  • -h:本帮助文档
  • -q:让输出可作为日志,不显示进度
  • -qq:除了错误以外,不输出其他信息
  • -d:仅下载,不安装或解开包文件
  • -s:不进行实际操作,只依次模拟执行命令
  • -y:对所有询问都回答yes
  • -f:当出现破损的依赖关系时,程序将尝试修正系统
  • -m:当有包文件无法找到时,程序仍尝试继续执行
  • -u:显示已升级的软件包列表
  • -b:在下载完源码包后,编译生成相应的软件包
  • -V:显示详尽的版本号
  • -c file:读取指定的配置文件file
  • -o option:设置任意配置选项,例如-o dir:cache=/tmp

apt-get命令的使用举例:

1.安装openssh-server:

apt-get install openssh-server

2.完成后,查看ssh进程是否安装和启动:

ps -e | grep ssh

image-20230913084213104

3.利用ifconfig命令,查看SSH服务器的IP地址:

ifconfig

如果没有ens33的网卡,可以参考:https://www.cnblogs.com/Gregg/p/17187459.html

4.使用Mobaxterm进行远程连接:

​ Ubuntu图形界面的软件安装可以通过应用中心的软件管理工具管理软件的安装、卸载、更新:

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

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

相关文章

再获新突破!移远通信RedCap模组拿下首张端网协同测评证书

为进一步推动5G技术的商用和普及,今年8月初,移远通信与广东联通联合建立了5G端网能力研究联合实验室(以下简称“联合实验室”),双方将在5G及RedCap各项性能的研究方面展开深入合作。广东联通网络产品创新中心总经理潘桂…

恒运资本:股市几点开盘和收盘?

股票商场在股票生意日打开,每个国家的股票商场都有自己的开盘和收盘时间。在本文中,我们将分析股市开盘和收盘时间的重要性,以及股市如安在纷歧起区的运作。我们还将讨论股市开盘和收盘时间的改动,以及这些改动对股票商场的影响。…

JVM核心参数图解-整理

一、VM核心参数 在JVM里有几个比较核心的参数,今天就主要来讲这几个: -Xms:JVM初始堆内存大小-Xmx:JVM堆内存的最大值-Xmn:JVM中新生代大小-XX:PermSize:永久代大小-XX:MaxPermSize:永久代最大…

拓世科技集团到访考察吉安青原区:共谋AIGC数字经济产业园发展大计

千帆竞发立潮头,奋勇争先谋发展,在中国这片广袤的大地上,先行者的每一次拓进都是历史的华章,远谋者的每一次交汇都是未来的预言。当红色江西大地与现代科技脉搏共振,当青原区的绿意拥抱拓世科技的AIGC科技,…

Mysql高级——索引

索引 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构 上…

视频接口冷知识

常用视频接口的分辨率和带宽 VGA接口:VGA接口是一种传输模拟信号的视频接口,它只能支持视频传输,不支持音频传输。VGA接口的最大支持分辨率是2048x1536px。HDMI接口:HDMI接口是一种传输数字信号的视频接口,它可以同时…

【基于Cocos Creator 3.5的赛车游戏】8.引入触摸屏幕事件并简单的控制小车

转载知识星球 | 深度连接铁杆粉丝,运营高品质社群,知识变现的工具 项目地址:赛车小游戏-基于Cocos Creator 3.5版本实现: 课程的源码,基于Cocos Creator 3.5版本实现 上一张您已经对Cocos的坐标系有了了解。这一章我们将让小车能…

MFC-GetAdaptersAddresses获取网卡信息

需要:#pragma comment(lib, "IPHLPAPI.lib") GetAdaptersAddresses函数参数说明 ULONG bufferSize = 0;ULONG result = ::GetAdaptersAddresses(AF_UNSPEC, GAA_FLAG_INCLUDE_PREFIX, nullptr, nullptr, &bufferSize);/*参数1:ULONG Family 网络协议族,此参…

【linux】Linux wps字体缺失、加粗乱码解决

解决wps字体缺失问题 1、下载字体包 git clone https://github.com/iamdh4/ttf-wps-fonts.git2、创建单独放置字体的目录 mkdir /usr/share/fonts/wps-fonts3、复制字体到系统目录下 cp ttf-wps-fonts/* /usr/share/fonts/wps-fonts4、修改字体权限 chmod 644 /usr/share/f…

2023年Java毕业设计选题推荐,1000道创新创意Java毕业设计题目推荐,避免踩坑

大家好,我是程序员徐师兄,最近有很多同学咨询,说毕业设计了,不知道选怎么题目好,有哪些是想需要注意的。 确实毕设选题实际上对很多同学来说一个大坑, 每年挖坑给自己跳的人太多太多。选到合适的题目的话&…

python pycharm 下载 安装 (1)

pycharm 官网 JetBrains: 软件开发者和团队的必备工具 python 官网 Python Release Python 3.11.5 | Python.org 软件安装 pycharm python 终端安装 然后进行全局配置 打开pycahrm 可以在扩展里边搜索中文翻译 测试

基于分布式系统结构下Nacos配置中心的应用

前言 在上一篇nacos初始中,已经描述过Nacos的基本知识,在这篇博客里记录的是Nacos配置中心的使用。 Nacos配置中心的作用 集中化配置管理:Nacos配置中心支持将应用程序的配置信息集中管理,包括常规的属性配置、文本配置、JSON配…

界面控件DevExtreme DateRangeBox组件发布,支持日期范围选择!

在最新的v23.1版本中,DevExpress官方已经正式发布了DevExtreme DateRangeBox小部件,支持所有JavaScript框架,包括Angular、React、Vue和jQuery。这个新的控件允许最终用户选择一个日期范围,该组件继承了DateBox组件的特性&#xf…

【笔记】简单算法查找、排序的思路和优化

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

李佳琦翻车,眉笔比黄金还贵?美妆品牌如何巧用AIGC降本增效?

又一个顶流翻车了。 9月10日,像往常一样,李佳琦站在镜头前,手中握着一支某国货品牌的眉笔,向消费者激情满满地进行介绍。却不曾想,下一秒却引发了风暴,仿佛随着键盘的敲击声一同汇聚,直指这位“…

如何使用ArcGIS中的Arcmap进行矢量和栅格数据裁剪?

在地理信息系统(GIS)中,我们经常需要处理各种空间数据,而矢量和栅格数据是最常见的两种数据类型。有时候,我们需要对数据进行裁剪,以提取出我们需要的特定区域的数据。本文将介绍如何使用ArcGIS中的Arcmap软件对矢量和栅格数据进行…

回溯系列--11个题

组合问题 第77题. 组合 题⽬链接:https://leetcode-cn.com/problems/combinations/ 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 ⽰例: 输⼊: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] class Solution …

分享一下蛋糕店在微信小程序上可以实现什么功能

蛋糕店在微信小程序上可以实现的功能 微信小程序作为一种新型的商业模式,正逐渐成为各行各业拓展线上业务的重要手段。对于蛋糕店来说,开发微信小程序可以实现以下功能: 一、展示产品和服务 微信小程序可以作为蛋糕店的产品展示平台&#x…

树状数组总结

【使用总结】 经典用法:单点更新o(logn),区间查询/区间最大值(1~n,求sum),o(logn) 扩展用法:区间修改,如对[x,y]区间加上一个数k 模板题:力扣(LeetCode)官网 - 全球极…

操作指南 | 如何参与Moonbeam投票委托

投票委托允许没有时间或者专业度一般的用户能够在治理中拥有话语权。该功能加强了决策流程,并且确保更大范围地代表社区利益。 通过Moonbeam委托平台,你需要 $GLMR 和一个相兼容的钱包。此教程使用MetaMask示范。 如何参与投票委托 前往http://delega…