Linux操作系统安装与使用

目录

Linux操作系统安装与使用

一、了解Linux操作系统与不同发行版本特点

1、Linux操作系统介绍

Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善Linux,使其最大化地适应用户的需要。 [1]

Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,它还被当作服务器,甚至当作网络防火墙,这是Linux的一大亮点。 [2]

Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。 [3]

Linux的基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令硬件软件设备、操作系统进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

2、不同发行版本

https://blog.csdn.net/weixin_41586471/article/details/78994030

Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Red Hat(RHEL红帽)为代表,后者以Debian为代表。

Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多 的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非 常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管 理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用, 但是Fedora Core的稳定性较差,最好只用于桌面应用。

Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范 的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing 和 unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经 过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是 稳定和安全性都非常的高。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资 料也很丰富,有很多支持的社区,有问题求教也有地方可去:)

Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是 一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的 Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。

Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo 被称为最完美的Linux发行版本的原因之一。Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美 FreeBSD的广受美誉的ports系统 ——Portage包管理系统。不同于APT和YUM等二进制文件分发的包管理系统,Portage是基于源代码分发的,必须编译后才能运行,对于大型软件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo是所有Linux 发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。

最后,介绍一下FreeBSD,需要强调的是:FreeBSD并不是一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。FreeBSD拥有两个分支: stable和current。顾名思义,stable是稳定版,而 current则是添加了新技术的测试版。FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运 行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。

二、制作Linux操作系统USB安装盘与Linux下学习环境搭建

1、制作Linux操作系统USB安装盘

参考博客https://blog.csdn.net/chekongfu/article/details/90754195。

2、学习环境搭建

a、qq安装

安装win插件,不安装win插件下的Linux版本qq体验太差了

wget -O- https://deepin-wine.i-m.dev/setup.sh | sh

安装qq

sudo apt-get install deepin.com.qq.im

b、安装钉钉

详见https://www.freesion.com/article/7510877808/。

第一步下载压缩包

第二步解压(可能打开时自动解压了)

第三步执行命令sudo dpkg -i dingding.deb

报错继续执行sudo apt-get -f install

c、安装谷歌

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

sudo dpkg -i google-chrome*; sudo apt-get -f install

三、熟练掌握路径、通配符以及磁盘管理系统常⻅使用技巧

1、linux目录与路径
a、简介

linux中的目录呈现树状结构,带有分支,也就是各级子目录,其作用就是存放文件,相当于Windows下我们所熟悉的文件夹,在linux下,安装完成后会创建一系列的目录,用于存放特定的文件。linux中的根目录为“/”,和Windows不同,没有盘符的概念。

索引节点inode

inode中文意思是索引节点,每个存储设备或存储设备的分区(存储设备可以是硬盘、U盘....)被格式化为文件系统后,都应该有两部分:一部分是inode,另一部分是Block。Block是用来存储数据用的。而inode就是用来存储这些数据信息的,这些信息包括文件大小、属主、归属的用户组、读写权限。
inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。
打个比方,比如一本书,存储设备或分区就相当于这本书,Block相当于书中的每一页,inode就相当于这本书前面的目录,一本书有很多内容,如果想查找某部分的内容,可以先查目录,通过目录更快的找到我们想要看的内容。虽然不太恰当,但还是比较形象的。

inode值相同的文件是硬链接文件

在linux文件系统中,inode值相同的文件是硬链接文件。这也就是说,不同的文件名,inode的值可能是相同的,一个inode值可以对于多个文件。在Linux中,链接文件是通过ln命令来创建的。
#ln 源文件 目标文件 #注意:目标文件不需要提前创建
inode值相同的文件,可以把他们的关系看作互为硬链接的关系。当我们修改其中一个文件的内容时,互为硬链接的文件的内容也会跟着变化。如果我们删除互为硬链接关系的某个文件时,另外的硬链接并不受影响,既文件数据还在(当文件硬链接个数为0时,数据占用空间才会被释放回收)。
可以这样理解,互为硬链接关系的文件,具有相同的inode值,也就是说,对应的实际数据是同一份;

特别提示:目录不能创建硬链接,只有文件才能创建硬链接。

软链接文件

创建软链接(也称为符号链接)的语法:

ln -s 源文件或目录 目标文件或目录
软链接也叫符号链接,它和硬链接有所不同,软链接文件(包含到源文件的路径位置等信息)。当我们删除了源文件后,软链接就不能独立存在了。虽然仍然会保留文件名(失效后查看时会是红色闪烁状),但我们却不能查看软链接的内容了。
当我们修改链接文件的内容时,就意味着我们在修改源文件的内容。此时源文件的属性也会发生改变,但软链接文件的属性并不会发生变化。
与硬链接不同的是,软链接对文件和目录都适用。无论是软链接还是硬链接,都相当于物件或目录,因此都可以用rm命令来删除。

linux中比较重要的目录:

     /etc:用于保存系统数据文件,启动文件和脚本等
     /bin:存放普通用户常用的命令
     /sbin:存放系统管理常用命令
     /boot:存放系统核心文件
     /dev:存放与设备有关的文件
     /lib:存放用于编译某些程序时要用的函数库
     /usr: 用于存放用户安装的应用程序
     /var:用于存放系统数据文件
     /root:系统管理员(root用户)的“家”目录
     /home:用于存放普通用户的“家”目录的目录
     /media:用于系统自动挂载存储设备时(比如光驱、U盘)使用的目录
     /mnt:    用于挂载设备时建议使用的目录(目前很多版本的linux都使用自动挂载,所以该目录很少用,被media取代)

路径:

绝对路径:写法一定是从根目录“/”开始。

相对路径:根据当前所处目录来表示目标目录。

“.”目录表示当前目录。

“…” 目录表示当期目录的上一层目录。

路经别名

https://blog.csdn.net/u010859650/article/details/81675187

b、使用技巧与常用命令

基名,路径的最右侧名称,/user/share/doc的基名 doc。

basename命令 取得路径基名。

dirname命令 除基名外的路径。

wps_clip_image-22778

ls命令

列出指定目录下的文件。

常用参数:

  1. 1. ls [-aAdfFhilnrRSt] 目录名称 
    2. -l :以长格式显示文件的详细属性,包含档案的属性与权限等等数据; 
    3. -a :显示所有文件,包括隐藏文件。 
    4. -A :跟-a功能相同,但不显示.和..; 
    5. -d :仅列出目录本身,而不是列出目录内的文件数据; 
    6. -f :直接列出结果,而不进行排序 (ls 预设会以文件名排序!); 
    7. -F :根据档案、目录等信息,给予附加数据结构,
    	例如:  *:代表可执行文件;
        	/:代表目录; 
    8. -n :列出 UID 与 GID 而非使用者与群组的名称; 
    9. -R :连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来; 
    10. -S :按照文件容量大小排序,而不是用文件名称排序; 
    11. -t :按照时间排序,而不是用文件名。
    12. -h: 文件大小会自动进行单位换算;
    13. -r:文件名逆序显示;
    

**ll命令 **

显示文件的信息,ll命令,本质就是ls -l

**pwd命令 **

显示当前工作目录

cd命令

进入目录

**mkdir命令 **

创建目录,默认情况下,指定目录的父目录必须存在。

mkdir 常用参数

-m, –mode:指定被创建目录的权限值。
-p, --parents:创建目录的同时也会创建需要的父目录。
-v, --verbose:显示创建目录与父目录的过程。
--help:显示此帮助信息并退出。
--version:输出版本信息并退出

例: 使用p参数,mkdir -pv /tmp/x3/hello

wps_clip_image-19301

创建权限为777的目录

image

rmdir命令 删除空目录

这个命令一般不经常使用。
rmdir:仅能删除删除空目录;
rmdir -p m/n/o/p 删除当前目录下的m/n/o/p的一整条路径,但要求路径下没有任何文件。

cp命令 复制文件

cp 要复制的文件路径 … 目标

参数:
   -a,--archive:此参数的效果和同时指定"-bpR"参数相同。
   -r:递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理。
   -R,--recursive:递归处理,将指定目录下的文件及子目录一并处理。
   -f,--force:强行复制文件或目录, 不论目的文件或目录是否已经存在。
   -i,--interactive:覆盖文件之前先询问用户。
   -u,--update:使用这项参数之后,只会在源文件的修改时间(Modification Time)较目的文件更新时,或是名称相互对应的目的文件并不存在,才复制文件。
   -v,--verbose:显示执行过程。
   -l,--link:对源文件建立硬链接,而非复制文件。
   -b,--backup:删除、覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件或目录。假如没有加上这个参数,在复制过程中若遇到符号链接,则会直接复制源文件或目录。
   -p,--preserve:保留源文件或目录的属性,包括所有者、所属组、权限与时间。
   -P,--parents:保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经存在。
   -s,--symbolic-link:对源文件建立符号链接,而非复制文件。
   -S <备份字尾字符串>,--suffix=<备份字尾字符串>:用"-b"参数备份目的文件后,备份文件的字尾会被加上一个备份字符串。默认的备份字尾符串是符号"~"
   -V <备份方式>,--version-control=<备份方式> 指定当备份文件时,备份文件名的命名方式,有以下3种:
             1.numbered或t, 将使用备份编号,会在字尾加上~1~字符串,其数字编号依次递增。
             2.simple或never 将使用简单备份,默认的备份字尾字符串是~, 也可通过-S来指定。
             3.existing或nil将使用当前方式,程序会先检查是否存在着备份编号,若有则采用备份编号,若无则采用简单备份。
   -x,--one-file-system:复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不复制,亦不处理位于其他分区的文件。
   --help:显示在线帮助。
   --sparse=<使用时机>:设置保存希疏文件的时机。
   --version:显示版本。
cp命令对单个文件的复制:
  目标不存在:则复制并重命名指定的名称(指定的名称的父目录必须存在);
  目标存在: 如果目标是文件:则覆盖;如果目标是目录:将文件复制到指定的目录中;

cp命令对多个文件的复制:
如果要复制的文件是多个,则目标必须要存在且是目录;默认情况下不cp命令会复制目录。目录下已经有该文件,再复制进来相同文件名的文件。则询问是否要覆盖。

mv命令 移动文件

mv SRC DEST
  规则与cp类似,但cp默认只能对文件操作,mv可以对文件目录均能操作。

rm命令 删除文件

rm 只能删除文件,不能删除目录。
常用参数:
  -i:提醒。
  -f:强行删除;管理员不会有确认提示,直接删掉。
  -r:递归删除目录及其内部的所有文件;
rm -rf 文件  强行删除文件。 警示:一定要谨慎使用。
rm -rf / 警示:删除根下所有文件。“自杀”非常危险。
警告:尽量不要这样操作。误操作经常发生,非常危险。

touch命令

touch命令一般被用于创建新的空文件。
但若把touch命令作用于已存在的文件上,则touch命令把文件的访问时间修改为当前时间。
2、通配符

通配符是由shell处理的, 它只会出现在命令的“参数”里。当shell在“参数”中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理。总之,通配符实际上就是一种shell实现的路径扩展功能。在 通配符被处理后, shell会先完成该命令的重组,然后再继续处理重组后的命令,直至执行该命令

linux通配符与正则表达式类似

“*”代表任意多个字符
“?” 代表任意单个字符
“[]”代表“[”和“]”之间的某一个字符,比如[0-9]可以代表0-9之间的任意一个数字,[a-zA-Z]可以代表a-z和A-Z之间的任意一个字母,字母区分大小写。
“^”表示匹配结果取反的意思,注意这个通配符必须要在[]中使用
“{}”表示符合括号内包含的多个文件
“.”这个符合比较特殊,如果匹配的条件加上了该符合那么说明查询结果文件就包含带“.”的文件
3、磁盘管理系统常见使用技巧
a.MBR分区

MBR的意思是“主引导记录”,它是存在于驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。MBR支持最大2TB磁盘,它无法处理大于2TB容量的磁盘。MBR格式的磁盘分区主要分为基本分区(primary partion)和扩展分区(extension partion)两种****主分区*和扩展分区下的逻辑分区*。主分区总数不能大于4个,其中最多只能有一个扩展分区。且基本分区可以马上被挂载使用但不能再分区,扩展分区必须再进行二次分区后才能挂载。扩展分区下的二次分区被称之为逻辑分区,逻辑分区数量限制视磁盘类型而定。LINUX规定:逻辑分区必须建立在扩展分区之上,而不是建立在主分区上

b、分区作用

主分区:主要是用来启动操作系统的,它主要放的是操作系统的启动或引导程序,/boot分区最好放在主分区上

扩展分区不能使用的,它只是做为逻辑分区的容器存在的,先创建一个扩展分区,在拓展分区之上创建逻辑分区;我们真正存放数据的是主分区和逻辑分区,大量数据都放在逻辑分区中。

注意:使用分区工具fdisk对磁盘进行操作,分区,格式化(重点)

注意:主分区+扩展分区 最多只能有4个

​ 扩展分区可以是0个,最多是1个

​ 扩展分区不能直接使用,扩展分区必须首先创建成逻辑分区才能使用

​ 逻辑分区可以是0个 1个 多个

命名方式: /dev/sd[a-z]n

其中:a-z 表示设备的序号,如sda表示第一块scsi硬盘,sdb就是第二块…

​ n 表示每块磁盘上划分的磁盘分区编号

img

c、磁盘管理常用命令

Linux磁盘管理常用三个命令为df、du和fdisk。

  • df:列出文件系统的整体磁盘使用量
  • du:检查磁盘空间使用量
  • fdisk:用于磁盘分区

df:

df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:
df [-ahikHTm] [目录或文件名]
选项与参数:
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示

du:

Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。
语法:
du [-ahskm] 文件或目录名称
选项与参数:
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;

fdisk:

fdisk 是 Linux 的磁盘分区表操作工具。
语法:
fdisk [-l] 装置名称
选项与参数:
-l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
fdisk -l /dev/sda ,观察硬盘之实体使用情形。
fdisk /dev/sda,可进入分割硬盘模式。
        1. 输入 m 显示所有命令列示。
        2. 输入 p 显示硬盘分割情形。
        3. 输入 a 设定硬盘启动区。
        4. 输入 n 设定新的硬盘分割区。
         4.1. 输入 e 硬盘为[延伸]分割区(extend)。
         4.2. 输入 p 硬盘为[主要]分割区(primary)。
        5. 输入 t 改变硬盘分割区属性。(制作交换分区时会用到)
        6. 输入 d 删除硬盘分割区属性。
        7. 输入 q 结束不存入硬盘分割区属性。
        8. 输入 w 结束并写入硬盘分割区属性。

四、熟悉用户及Linux权限管理

学习:https://www.runoob.com/linux/linux-user-manage.html。

1、Linux用户简介

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改。
  • 用户口令的管理。
  • 用户组的管理。
2、Linux用户账号管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。

添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。

a、添加新的用户账号使用useradd命令,其语法如下:
useradd 选项 用户名
参数说明:
选项:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
用户名:
指定新账号的登录名。

增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。

Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理。

b、删除帐号

如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。

删除一个已有的用户账号使用userdel命令,其格式如下:
userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除。
c、修改帐号

修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

修改已有用户的信息使用usermod命令,其格式如下:
usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
另外,有些系统可以使用选项:-l 新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
d、用户口令的管理

用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:
passwd 选项 用户名
可使用的选项:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。

普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。
3、Linux系统用户组的管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

a、增加一个新的用户组
用groupadd命令。其格式如下:
groupadd 选项 用户组
可以使用的选项有:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
b、删除一个已有的用户组
使用groupdel命令,其格式如下:
groupdel 用户组
c、修改用户组的属性
使用groupmod命令。其语法如下:
groupmod 选项 用户组
常用的选项有:
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
d、如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:
$ newgrp root
这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。
4、与用户账号有关的系统文件

完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。

与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。

下面分别介绍这些文件的内容。

a、/etc/passwd文件是用户管理工作涉及的最重要的一个文件。

Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。

这个文件对所有用户都是可读的。它的内容类似下面的例子:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d7dLd2bN-1607095038141)(/home/lenovo/.config/Typora/typora-user-images/image-20201204085928876.png)]

从上面的例子我们可以看到,/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
1)"用户名"是代表用户账号的字符串。
通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(:),因为冒号在这里是分隔符。
为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。
2)“口令”一些系统中,存放着加密后的用户口令字。
虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。
3)“用户标识号”是一个整数,系统内部用它来标识用户。
一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。
通常用户标识号的取值范围是0~65 535。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。
4)“组标识号”字段记录的是用户所属的用户组。
它对应着/etc/group文件中的一条记录。
5)“注释性描述”字段记录着用户的一些个人情况。
例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。在不同的Linux 系统中,这个字段的格式并没有统一。在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用做finger命令的输出。
6)“主目录”,也就是用户的起始工作目录。
它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。
7)用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。
Shell是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等。
系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh。
用户的登录Shell也可以指定为某个特定的程序(此程序不是一个命令解释器)。
利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统。有些Linux 系统要求只有那些在系统中登记了的程序才能出现在这个字段中。
8)系统中有一类用户称为伪用户(pseudo users)
这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。

常见的伪用户如下所示:
伪 用 户 含 义 
bin 拥有可执行的用户命令文件 
sys 拥有系统文件 
adm 拥有帐户文件 
uucp UUCP使用 
lp lp或lpd子系统使用 
nobody NFS使用
b、拥有帐户文件
1、除了上面列出的伪用户外,还有许多标准的伪用户,例如:audit, cron, mail, usenet等,它们也都各自为相关的进程和文件所需要。

由于/etc/passwd文件是所有用户都可读的,如果用户的密码太简单或规律比较明显的话,一台普通的计算机就能够很容易地将它破解,因此对安全性要求较高的Linux系统都把加密后的口令字分离出来,单独存放在一个文件中,这个文件是/etc/shadow文件。 有超级用户才拥有该文件读权限,这就保证了用户密码的安全性。

2、/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生
它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用":"隔开。这些字段是:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
"登录名"是与/etc/passwd文件中的登录名相一致的用户账号
"口令"字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合 { ./0-9A-Za-z }中的字符,则对应的用户不能登录。
"最后一次修改时间"表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCO Linux 中,这个时间起点是1970年1月1日。
"最小时间间隔"指的是两次修改口令之间所需的最小天数。
"最大时间间隔"指的是口令保持有效的最大天数。
"警告时间"字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
"不活动时间"表示的是用户没有登录活动但账号仍能保持有效的最大天数。
"失效时间"字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FpCiwWfc-1607095038142)(/home/lenovo/.config/Typora/typora-user-images/image-20201204091811086.png)]

3、用户组的所有信息都存放在/etc/group文件中。

将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段。

每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。

当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。

用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。

用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有:
组名:口令:组标识号:组内用户列表
"组名"是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
"口令"字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。
"组标识号"与用户标识号类似,也是一个整数,被系统内部用来标识组。
"组内用户列表"是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。
5、添加批量用户

添加和删除用户对每位Linux系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个、上百个甚至上千个用户时,我们不太可能还使用useradd一个一个地添加,必然要找一种简便的创建大量用户的方法。Linux系统提供了创建大量用户的工具,可以让您立即创建大量用户,方法如下:

(1)先编辑一个文本用户文件。

每一列按照/etc/passwd密码文件的格式书写,要注意每个用户的用户名、UID、宿主目录都不可以相同,其中密码栏可以留做空白或输入x号。一个范例文件user.txt内容如下:

user001::600:100:user:/home/user001:/bin/bash
user002::601:100:user:/home/user002:/bin/bash
user003::602:100:user:/home/user003:/bin/bash
user004::603:100:user:/home/user004:/bin/bash
user005::604:100:user:/home/user005:/bin/bash
user006::605:100:user:/home/user006:/bin/bash
(2)以root身份执行命令 /usr/sbin/newusers,从刚创建的用户文件user.txt中导入数据,创建用户:
 newusers < user.txt

然后可以执行命令 vipwvi /etc/passwd 检查 /etc/passwd 文件是否已经出现这些用户的数据,并且用户的宿主目录是否已经创建。

(3)执行命令/usr/sbin/pwunconv

/etc/shadow 产生的 shadow 密码解码,然后回写到 /etc/passwd 中,并将/etc/shadowshadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password 功能。

(4)编辑每个用户的密码对照文件。

格式为:

用户名:密码

实例文件 passwd.txt 内容如下:

user001:123456
user002:123456
user003:123456
user004:123456
user005:123456
user006:123456
(5)以 root 身份执行命令 /usr/sbin/chpasswd

创建用户密码,chpasswd 会将经过 /usr/bin/passwd 命令编码过的密码写入 /etc/passwd 的密码栏。

# chpasswd < passwd.txt
6)确定密码经编码写入/etc/passwd的密码栏后。

执行命令 /usr/sbin/pwconv 将密码编码为 shadow password,并将结果写入 /etc/shadow

# pwconv

这样就完成了大量用户的创建了,之后可以到/home下检查这些用户宿主目录的权限设置是否都正确,并登录验证用户密码是否正确。

6、切换用户

su username

7、Linux权限管理

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。

为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

在 Linux 中我们通常使用以下两个命令来修改文件或目录的所属用户与权限:

  • chown (change ownerp) : 修改所属用户与组。
  • chmod (change mode) : 修改用户的权限。

在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组,如:

[root@www /]# ls -l
total 64
dr-xr-xr-x   2 root root 4096 Dec 14  2012 bin
dr-xr-xr-x   4 root root 4096 Apr 19  2012 boot
……

实例中,bin 文件的第一个属性用 d 表示。d 在 Linux 中代表该文件是一个目录文件。

在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为 d 则是目录
  • 当为 - 则是文件;
  • 若是 l 则表示为链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。

img

每个文件的属性由左边第一部分的 10 个字符来确定(如下图)。

363003_1227493859FdXT

从左至右用 0-9 这些数字来表示。

0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

其中,第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;

2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。

Linux文件属主和属组
[root@www /]# ls -l
total 64
drwxr-xr-x 2 root  root  4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21  2014 mysql
……

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

在以上实例中,mysql 文件是一个目录文件,属主和属组都为 mysql,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。

对于 root 用户来说,一般情况下,文件的权限对其不起作用。

更改文件属性
1、chgrp:更改文件属组

语法:

chgrp [-R] 属组名 文件名

参数选项

  • -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2、chown:更改文件属主,也可以同时更改文件属组

语法:

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

进入 /root 目录(~)将install.log的拥有者改为bin这个账号:

[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

将install.log的拥有者与群组改回为root:

[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log
3、chmod:更改文件9个属性

Linux文件属性有两种设置方法,一种是数字,一种是符号。

Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。

先复习一下刚刚上面提到的数据:文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

  • r:4
  • w:2
  • x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx— 分数则是:

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= — = 0+0+0 = 0

所以等一下我们设定权限的变更时,该文件的权限数字就是 770。变更权限的指令 chmod 的语法是这样的:

 chmod [-R] xyz 文件或目录

选项与参数:

  • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
  • -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

举例来说,如果要将 .bashrc 这个文件所有的权限都设定启用,那么命令如下:

[root@www ~]# ls -al .bashrc
-rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

那如果要将权限变成 -rwxr-xr– 呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754。

符号类型改变文件权限

还有一个改变权限的方法,从之前的介绍中我们可以发现,基本上就九个权限分别是:

  • user:用户
  • group:组
  • others:其他

那么我们就可以使用 u, g, o 来代表三种身份的权限。

此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看:

chmodu g o a+(加入) -(除去) =(设定)r w x文件或目录

如果我们需要将文件权限设置为 -rwxr-xr– ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:

#  touch test1    // 创建 test1 文件
# ls -al test1    // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r  test1    // 修改 test1 权限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

而如果是要将权限去掉而不改变其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:

#  chmod  a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
8、用户获取管理员权限

https://blog.csdn.net/guoweimelon/article/details/50471561

1)、判断此时使用用户是否具有管理员权限
1.采用符号#/$进行判断:

若使用具有管理员权限的用户登录时,将出现/#符号

若使用不具有管理员权限的用户登录时,将出现/$符号

2.使用uid gid 的group进行判断

具有管理员权限的用户将与root管理员处于同一组,组号都将为0

2)、管理员权限获取
1.使用su命令切换到root用户

由于root用户一开始是没有密码的,因此首先输入:sudo passwd root,对root用户密码进行初始化,有可能会要求输入当前使用用户的密码,一定会要求输入root用户密码和密码的二次输入。最后通过su username进行用户之间的切换。

2、更改配置文件

在执行命令前加上sudo让用户获得管理员权限,首先需要在root用户下,具有管理员权限对/etc/sudoers文件进行修改。

我们需要先利用su命令切换到root用户下,输入visudo -f /etc/sudoers命令进行编辑,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1DC2XgF4-1607095038144)(/home/lenovo/.config/Typora/typora-user-images/image-20201204222733278.png)]

进入文件之后,找到root ALL=(ALL) ALL这条语句所在的地方,将root替换成你想要具有管理员权限的用户名(比如:lenovo),在这行语句下面输入lenovo ALL=(ALL) ALL,然后进行保存,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X1IdbC28-1607095038144)(/home/lenovo/.config/Typora/typora-user-images/image-20201204223517598.png)]

后面我用gedit打开的。

结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rf8IVNFV-1607095038145)(/home/lenovo/.config/Typora/typora-user-images/image-20201204224414565.png)]

五、熟悉Linux网络管理及常用配置

学习:https://blog.51cto.com/13667098/2093772.

​ https://blog.csdn.net/qq_15096707/article/details/78420069#%E7%9B%AE%E5%BD%95

但里面的网络配置文件和我版本匹配不上,最后是学这篇博客解决的

https://www.cnblogs.com/kehoudaanxianjie/p/13139636.html。

1、网络通信的简介

通信的三要素是:ip地址,掩码,路由。
ip和netmask是必须有的,有了这两个条件,可以实现本地网络通信。
如果有ip,netmask,route,就可以实现跨网段通信。
还有一个点就是DNS,域名解析。

2、Linux网络配置

linux配置网络的方式很多,以下我从四个方向介绍网络的配置方式。从简单到难。
1,图形界面方式
2,伪图形界面方式
3,命令行方式

a、图形界面

系统命令:
nm-connection-editor

linux网络配置和管理
双击要修改的网络eth0网卡
linux网络配置和管理
需要修改:方法----地址
方法:选择手动
地址:修改地址,子网掩码,网关,以及DNS服务器
保存即可。

b、伪图形界面(init 3 和 5模式可以使用)

系统命令:
nmtui
linux网络配置和管理
回车进入
linux网络配置和管理
选项需要修改的网卡进入

linux网络配置和管理
配置和图形界面类似。
注:选择是用下上左右选择,回车是确定

实超

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hw84OLJ3-1607095038149)(/home/lenovo/.config/Typora/typora-user-images/image-20201204174315128.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-asMUaaaZ-1607095038150)(/home/lenovo/.config/Typora/typora-user-images/image-20201204174357088.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6LRQWDeX-1607095038150)(/home/lenovo/.config/Typora/typora-user-images/image-20201204174433221.png)]

c、命令行配置(redhat 7.2)
nmcli connection modify eth0 ipv4.method manual ipv4.addresses "192.168.4.52/24" ipv4.gateway "192.168.4.254" ipv4.dns "8.8.8.8" connection.autoconnect yes
nmcli connection up eth0
翻译:#网络连接命令 ---连接----修改---网卡名---ip版本4.方法-- 手动--ip版本4.地址 ----“ip地址/掩码"--ip版本4.网关--"网关地址"--ip版本4.域名解析 “DNS服务器” ---连接.自动连接---是
#网络连接命令--连接---开启---网卡名
nmcli con mo eth0 ipv4.method manual ipv4.add "192.168.4.52/24"
使用时间长了,命令可以简写。

ifconfig命令临时配置IP地址(临时配置IP地址,即当我们重启计算机或重启网络服务后,配置将失效)

ifconfig需要安装sudo apt-get install net-tools

六、了解Linux服务

1、SSH的简介安装及使用
a.SSH简介

原博客https://blog.csdn.net/netwalk/article/details/12951031。

传统的网络服务程序,如:ftp、POP和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。

从前,一个名为Tatu Yl?nen的芬兰程序员开发了一种网络协议和服务软件,称为SSH(Secure SHell的缩写)。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,虽然许多人把Secure Shell仅当作Telnet的替代物,但你可以使用它来保护你的网络连接的安全。你可以通过本地或远程系统上的Secure Shell转发其他网络通信,如POP、X、PPP和FTP。你还可以转发其他类型的网络通信,包括CVS和任意其他的TCP通信。另外,你可以使用带 TCP包装的Secure Shell,以加强连接的安全性。除此之外,Secure Shell还有一些其他的方便的功能,可用于诸如Oracle之类的应用,也可以将它用于远程备份和像SecurID卡一样的附加认证。

b、SSH的工作机制

SSH分为两部分:客户端部分和服务端部分。

服务端是一个守护进程(demon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。

客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。

他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。刚才所讲的只是SSH连接的大致过程,SSH 1.x和SSH 2.x在连接协议上还有着一些差异。

SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。启动SSH服务器后,sshd运行起来并在默认的22端口进行监听(你可以用 # ps -waux | grep sshd 来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理。

但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。

c、SSH安装

如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudoapt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-server。

sudo apt-get installopenssh-client

sudo apt-get install openssh-server

d、修改SSH端口号

SSH默认端口号为22,若有修改SSH端口号的需求,则运行以下指令打开SSH配置文件:

1 $ sudo gedit /etc/ssh/sshd_config
e、SSH远程登录

SSH服务启动后,即可远程登陆,登陆命令格式为:ssh 帐号@IP地址,例如:

1 $ ssh user@10.234.5.81

其中帐号指的是Ubuntu的登录帐号

若不知道IP地址可以通过以下指令查看:

1 $ ifconfig -a

远程登录后若想退出,输入以下指令即可:

1 $ exit
f、数据传输

完成SSH服务配置之后即可实现基于SSH的数据传输,最常用方便的指令便是scp,以下是常用scp指令:

$ scp -r usr@43.224.34.73:/home/lk   /root  //将远程IP地址为43.224.34.73的usr用户下路径为 /home/lk 的所有文件拷贝到本地 /root 文件夹中

$ scp usr@43.224.34.73:/home/lk/test.jar   /root  //将远程IP地址为43.224.34.73的usr用户下路径为 /home/lk 的test.jar文件拷贝到本地 /root 文件夹中

$ scp -r /root  usr@43.224.34.73:/home/lk    //将本地 /root 中的所有文件拷贝到远程IP地址为43.224.34.73的usr用户下路径为 /home/lk 的文件夹中

$ scp /root/test.jar   usr@43.224.34.73:/home/lk   //将本地 /root 中的test.jar文件拷贝到远程IP地址为43.224.34.73的usr用户下路径为 /home/lk 的文件夹中

scp的通用指令格式为:scp [参数] [原路径] [目标路径]

其中-r参数意为:递归复制整个目录

2、linux服务(Service)管理

学习:https://blog.csdn.net/fly_captain/article/details/82894014。

介绍:
  • 服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是 Linux 中非常重要的知识点。
3、安装与配置mysql

参考博客https://www.cnblogs.com/redstand/p/13227022.html。

https://www.cnblogs.com/2020javamianshibaodian/p/12920243.html。

4、搭建一个简单的http服务器

https://blog.csdn.net/qq_38240926/article/details/99610158

5、配置ftp服务

https://blog.csdn.net/j_strawhat/article/details/110384202。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值