Linux用户与权限、IP地址与远程管理详解及命令

文章目录

实验环境

本实验需要一台Rockylinux虚拟机即可

Linux常用命令补充

历史命令

  • history:查看历史命令列表
  • history -c:清空历史命令
  • !n:执行命令历史中的第n条命令
  • !str:执行最近一次以str开头的历史命令
shell 复制代码
[root@localhost ~]# history 				#查看历史命令
[root@localhost ~]# history -c				#清空历史命令
shell 复制代码
[root@localhost ~]# cat /etc/shells			#查看/etc/shells文件
[root@localhost ~]# history					#查看历史命令
[root@localhost ~]# !1						#执行历史命令标号为1的指令
[root@localhost ~]# cat /etc/hosts			#查看/etc/hosts文件
[root@localhost ~]# !cat					#执行最近一次cat开头的指令
shell 复制代码
[root@localhost ~]# grep HISTSIZE /etc/profile	#/etc/profile中记录了历史命令可以记录多少条
HISTSIZE=1000

du命令

  • 作用:统计文件的占用空间
  • du [选项]... [目录或文件]...
    • -s:只统计每个参数所占用的总空间大小
    • -h:提供易读容量单位(K、M等)
shell 复制代码
[root@localhost ~]# du -sh /boot/ /etc/pki/			#统计/boot/和/etc/pki/占用磁盘空间大小

date指令

  • 作用:查看/修改系统时间
  • date +%F、date +%R
  • date +"%Y-%m-%d %H:%M:%S"
  • 修改时间格式:date -s "yyyy-mm-dd HH:MM:SS" ,不可将时间修改为1970-01-01 00:00:00之前
shell 复制代码
[root@localhost ~]# date							#查看当前系统时间
[root@localhost ~]# date +"%F"						#查看年-月-日
[root@localhost ~]# date +"%R"						#查看时:分:秒

将时间修改为: '2008-08-08 20:08:08',练习完之后将时间改为正确时间

shell 复制代码
[root@localhost ~]# date -s '2008-08-08 08:08:08'	#修改时间为'2008-08-08 08:08:08'

用户与组概述

用户作用:

  • 登陆操作系统
  • 方便做权限的不同设置
  • 用户的唯一标识:UID
  • LINUX系统默认管理员为root,管理员root的UID为0

组的作用

  • 方便管理众多的用户,方便对用户进行分类

  • 组的唯一标识:GID

  • 组的分类:基本组,附加组(从属组)

    • 基本组:Linux自己创建的组,与用户同名,系统自动将用户加入
    • 附加组(从属组):管理员自建创建,管理员将用户加入
  • Linux一个用户必须至少属于一个组

    • 例如:创建一个用户zhangsan,默认会创建与用户同名的组,并把用户加入到这个组里面,这个组是zhangsan用户的基本组
shell 复制代码
[root@localhost ~]# useradd	zhangsan				#创建zhangsan用户

用户账号创建

用户基本信息存放在 /etc/passwd文件,每个用户记录一行,以:分割为7字段,含义如下

用户名:密码占位符:用户UID:基本组GID:描述信息:家目录(宿主目录):解释器

shell 复制代码
[root@localhost ~]# wc -l /etc/passwd				#统计当前系统中的用户数量
[root@localhost ~]# grep zhangsan /etc/passwd		#从/etc/passwd文件中过滤zhangsan的信息

查看用户-查

  • 使用id命令

  • 格式:id 用户名

  • 作用:判断该用户是否存在

shell 复制代码
[root@localhost ~]# id zhangsan							#判断用户是否存在
[root@localhost ~]# id dachui							#判断用户是否存在
id: "dachui":无此用户

创建用户-增

  • 使用useradd命令

  • 格式:useradd [选项] 用户名

  • 常用命令选项

    • -u 指定用户id
    • -d 指定家目录路径
    • -s 指定登录解释器
    • -G 指定用户附加组
shell 复制代码
[root@localhost ~]# useradd java01					#创建用户java01
[root@localhost ~]# grep java01 /etc/passwd			#查看/etc/passwd是否多出了用户java01
[root@localhost ~]# id java01						#查看用户java01是否存在
[root@localhost ~]# useradd java02					#创建用户java02
[root@localhost ~]# id java02						#查看用户java02是否存在

指定用户UID创建用户

shell 复制代码
[root@localhost ~]# useradd -u 1100 java03			#创建UID为1100的用户java03
[root@localhost ~]# id java03						#查看验证	
uid=1100(java03) gid=1100(java03) 组=1100(java03)

指定用户家目录创建目录

shell 复制代码
[root@localhost ~]# useradd -d /opt/java04 java04	#创建java04用户,其家目录为/opt/java04
[root@localhost ~]# grep java04  /etc/passwd		#查看验证是否多出来了java04用户
java04:x:1101:1101::/opt/java04:/bin/bash				
[root@localhost ~]# ls /opt/						#查看java04用户家目录

指定用户解释器

  • /sbin/nologin,如果用户的解释器为/sbin/nologin,那么该用户无法登录系统
shell 复制代码
[root@localhost ~]# useradd -s /sbin/nologin java05	#创建用户java05并指定解释器
[root@localhost ~]# grep java05 /etc/passwd			#查看验证

指定用户附加组

  • groupadd 组名,可以专门创建一个组
shell 复制代码
[root@localhost ~]# groupadd tarena				#创建组tarena
[root@localhost ~]# useradd -G tarena java06  #创建java06用户并添加到tarena组里面
[root@localhost ~]# id java06					#验证

指定基本组

shell 复制代码
[root@localhost ~]# useradd -g tarena java07	#创建java07用户指定基本组为tarena
[root@localhost ~]# id java07					#验证

修改用户属性-改

  • 使用usermod命令
  • 只能操作已存在的用户
  • 格式:usermod [选项] 用户
    • -u 指定用户id
    • -d 指定家目录路径
    • -s 指定登录解释器
    • -G 指定用户附加组(重置附加组)
shell 复制代码
[root@localhost ~]# useradd alex				#创建用户alex
[root@localhost ~]# usermod -u 1200 alex		#修改用户alex的UID为1200
shell 复制代码
[root@localhost ~]# usermod -s /bin/sh alex		#修改用户alex的解释器为/bin/sh
[root@localhost ~]# grep alex  /etc/passwd		#查看用户alex的信息
shell 复制代码
[root@localhost ~]# groupadd mygroup 			#添加mygroup组
[root@localhost ~]# usermod -G tarena alex		#将alex附加组设置为tarena
[root@localhost ~]# id alex 					#查看验证
[root@localhost ~]# usermod -G mygroup alex		#将alex附加组设置为mygroup
[root@localhost ~]# id  alex 					#查看验证,-G其实是重置附加组
shell 复制代码
[root@localhost ~]# grep alex /etc/passwd		#查看当前alex的家目录	
[root@localhost ~]# usermod -d /opt/alex alex	#修改alex用户家目录为/opt/alex 
[root@localhost ~]# grep alex /etc/passwd		#查看验证,alex用户家目录已经修改为/opt/alex
[root@localhost ~]# ls /opt/		#但是/opt/下没有alex家目录,因为usermod -d不会创建目录

删除用户-删

  • 删除用户:userdel
    • -r:连同用户家目录、信箱一并删除
shell 复制代码
[root@localhost ~]# userdel  java03			#删除用户java03,家目录、信箱不删除
[root@localhost ~]# userdel -r java04		#删除用户java04,家目录、信箱一并删除

用户密码管理

  • 记录用户密码信息的文件:/etc/shadow
  • 文件格式如下

用户名:加密密码:从1970年1月1日到最近一次修改密码时间:密码最短有效天数,默认为0:密码最长有效天数,默认99999:密码过期前警告天数,默认是7:密码过期后多少天禁用此账户:账号失效天数,默认是空:保留字段(未使用)

交互式修改密码

  • 使用passwd命令修改密码
  • 格式:passwd 用户名
  • 只有root用户才能指定用户修改密码
  • passwd直接回车则代表为当前登录用户修改密码
  • 普通用户修改密码需要满足策略,root用户可以忽略密码策略
shell 复制代码
[root@localhost ~]# passwd lisi					#修改lisi用户的密码
更改用户 lisi 的密码。
新的 密码:										 #为了安全,输入密码不显示
无效的密码: 密码少于 8 个字符
重新输入新的 密码:								  #为了安全,输入密码不显示
passwd:所有的身份验证令牌已经成功更新。

非交互式修改密码

  • 格式:echo 密码 | passwd --stdin 用户名
shell 复制代码
[root@localhost ~]# echo 123 | passwd --stdin zhangsan	#修改用户zhangsan用户密码为123

用户初始配置文件

  • 新建用户是,根据/etc/skel模板目录复制内容至用户家目录下

  • 主要的初始配置文件

    • ~/.bash_profile: 每次登录时执行

    • ~/.bashrc: 每次进入新的bash环境时执行

    • ~/.bash_logout:每次退出登录时执行

    • 全局配置文件:/etc/bashrc、/etc/profile

root用户使用~/.bashrc文件永久定义别名

shell 复制代码
[root@localhost ~]# vim ~/.bashrc
...
alias hn='hostname'
...

基本权限和归属

基本权限的类别

  • 读取:允许查看内容-read r
  • 写入:允许修改内容-write w
  • 可执行:允许运行和切换-execute x

常见报错提示:Permission denied :权限不足

对于文本文件,拥有相应权限能做操作哪些命令(举例):

​ r 读取权限:cat less head tail

​ w 写入权限:vim > >>

​ x 可执行权限: Shell脚本编写时可以赋予

权限适用对象(归属)

  • 所有者:拥有此文件/目录的用户-user u
  • 所属组:拥有此文件/目录的组-group g
  • 其他用户:除所有者、所属组以外的用户-other o

查看权限

  • 查看文件权限: ls -l 文件1 文件2
  • 查看目录权限: ls -ld 目录1 目录2 ...

​ 以 - 开头: 文本文件

​ 以 d 开头:目录

​ 以 l 开头: 快捷方式

shell 复制代码
[root@localhost ~]# ls -ld /etc/					#查看/etc/目录权限
[root@localhost ~]# ls -l /etc/rc.local				#查看/etc/rc.local权限
[root@localhost ~]# ls -l /etc/passwd				#查看/etc/passwd权限

修改权限

设置基本权限

  • 使用 chmod 命令
  • 命令格式: chmod [-R] 归属关系±=权限类别 文档...
    • -R:递归修改
shell 复制代码
[root@localhost ~]# mkdir /java01					#创建素材目录
[root@localhost ~]# ls -ld /java01					#查看/java01目录权限
drwxr-xr-x. 2 root root 6 2月  17 12:54 /java01

取消/java01目录所有者的w权限

shell 复制代码
[root@localhost ~]# chmod u-w /java01				#u-w权限
[root@localhost ~]# ls -ld /java01					#查看权限

/java01目录所有者怎加w权限

shell 复制代码
[root@localhost ~]# chmod u+w /java01				#u+w权限
[root@localhost ~]# ls -ld /java01					#查看权限

修改/java01目录所属组为只读权限

shell 复制代码
[root@localhost ~]# chmod g=r /java01				#g=r权限
[root@localhost ~]# ls -ld /java01					#查看权限

修改/java01目录其他人没有任何权限

shell 复制代码
[root@localhost ~]# chmod o=--- /java01				#其他人取消所有权限
[root@localhost ~]# ls -ld /java01					#查看权限

同时设置权限

shell 复制代码
[root@localhost ~]# chmod u=rwx,o=rx /java01		#所有者权限为rwx,其他人权限为rx
[root@localhost ~]# ls -ld /java01					#查看权限
[root@localhost ~]# chmod u=rwx,g=rx,o=rx /java01	#所有者权限为rwx,所属组/其他人权限为rx
[root@localhost ~]# chmod ugo=rwx /java01			#所有者/所属组/其他人权限为rwx
[root@localhost ~]# ls -ld /java01					#查看权限

-R递归修改权限

shell 复制代码
[root@localhost ~]# mkdir -p /opt/aa/bb/cc			#递归创建/opt/aa/bb/cc
[root@localhost ~]# ls -lR /opt/					#递归查看属性

查看aa,bb,cc(目录其他人的权限都是rx)

shell 复制代码
[root@localhost ~]# ls -ld /opt/aa/
[root@localhost ~]# ls -ld /opt/aa/bb/
[root@localhost ~]# ls -ld /opt/aa/bb/cc/

递归修改权限,目录本身包括此目录里面会发生变化

shell 复制代码
[root@localhost ~]# chmod  -R o=--- /opt/aa/	#递归设置/opt/aa其他人没有任何权限
[root@localhost ~]# ls -ld /opt/aa/				#查看验证
[root@localhost ~]# ls -ld /opt/aa/bb/
[root@localhost ~]# ls -ld /opt/aa/bb/cc/

如何判断用户对某目录所具备怎样的权限

shell 复制代码
[root@localhost ~]# chmod  g=rx,o=rx /java01/			#设置权限
[root@localhost ~]# ls -ld /java01/						#查看权限
[root@localhost ~]# useradd zhangsan					#创建zhangsan用户
drwxr-xr-x. 2 root root 6 7月   1 03:56 /java01/			
[root@localhost ~]# id zhangsan							#判断用户归属关系
uid=1004(zhangsan) gid=1004(zhangsan) 组=1004(zhangsan)

实验不同用户写入文件:

shell 复制代码
[root@localhost ~]# mkdir /java02						#创建/java02目录
[root@localhost ~]# echo 123 > /java02/a.txt			#创建/java02/a.txt文件内容为123

zhangsan用户测试

shell 复制代码
[root@localhost ~]# su - zhangsan 						#切换用户
[zhangsan@som ~]$ cat /java02/a.txt    					#可以查看
123
[zhangsan@som ~]$ echo haha > /java02/a.txt     		#写入haha失败
-bash: /java02/a.txt: 权限不够
[zhangsan@som ~]$ exit									#退回到root用户
[root@localhost ~]# chmod  o+w /java02/a.txt           	#赋予w的权限
[root@localhost ~]# su - zhangsan 						#切换用户zhangsan
[zhangsan@som ~]$ echo haha >> /java02/a.txt       		#写入成功
[zhangsan@som ~]$ cat /java02/a.txt						#可以验证
123
haha

实验不同用户操作目录:

shell 复制代码
[root@localhost ~]# ls -ld /java02/						#查看权限
drwxr-xr-x. 2 root root 19 6月  28 13:22 /java02/		
[root@localhost ~]# id zhangsan							#查看zhangsan用户归属
uid=1004(zhangsan) gid=1004(zhangsan) 组=1004(zhangsan)

zhangsan用户测试

shell 复制代码
[root@localhost ~]# su - zhangsan 					#切换用户zhangsan
[zhangsan@som ~]$ ls -l /java02/            		#可以查看
[zhangsan@som ~]$ cd /java02               	 		#可以切换目录
[zhangsan@som java02]$ exit
shell 复制代码
[root@localhost ~]# chmod o-x /java02				#其他人取消x权限
[root@localhost ~]# su - zhangsan 					#切换zhangsan用户	
[zhangsan@som ~]$ cd /java02                		#切换失败
-bash: cd: /java02: 权限不够
[zhangsan@som ~]$ ls /java02                 		#查看虽然显示,但是也异常
ls: 无法访问/java02/a.txt: 权限不够
a.txt

在目录下写入内容,但是修改的是目录里面的内容,对目录本身没有修改权限:

shell 复制代码
[root@localhost ~]# chmod o=rwx /java02
[root@localhost ~]# su - zhangsan 
[zhangsan@som ~]$ cd  /java02
[zhangsan@som java02]$ touch zs.txt				#创建成功
[zhangsan@som java02]$ mkdir zs					#创建成功
[zhangsan@som java02]$ exit

如果想要对目录本身有修改的权限,找此目录的父目录即可:

shell 复制代码
[zhangsan@som java02]$ cd
[zhangsan@som ~]$ mv /java02 /stu02				#修改失败
mv: 无法将"/java02" 移动至"/stu02": 权限不够
[root@localhost ~]# su - zhangsan 
[root@localhost ~]# chmod o+w /          		#修改/的权限
[root@localhost ~]# su - zhangsan 
[zhangsan@som ~]$ mv /java02 /stu02				#修改成功
[zhangsan@som ~]$ ls /

权限位的8进制数表示

7:rwx 6:rw- 5:r-x 4:r-- 3:-wx 2:-w- 1:--x 0:---

数字的形式修改权限:

shell 复制代码
[root@localhost ~]# mkdir /java03
[root@localhost ~]# ls -ld /java03
shell 复制代码
[root@localhost ~]# chmod  750 /java03
[root@localhost ~]# ls -ld /java03
[root@localhost ~]# chmod  700 /java03

修改归属

设置归属关系

  • 使用 chown 命令,-R递归设置
    • chown [-R] 属主 文档...
    • chown [-R] :属组 文档...
    • chown [-R] 属主:属组 文档...

同时修改所有者(属主)和所属组(属组)

shell 复制代码
[root@localhost ~]# mkdir /springboot			 #创建/springboot
[root@localhost ~]# ls -ld /springboot			 #查看权限
[root@localhost ~]# groupadd  stugrp			 #创建组stugrp
[root@localhost ~]# useradd dc					 #创建dc用户
[root@localhost ~]# chown dc:stugrp /springboot  #修改/springboot目录的所有者为dc,所属组为stugrp
[root@localhost ~]# ls -ld /springboot#查看归属
shell 复制代码
[root@localhost ~]# chown zhangsan /springboot   #仅将/springboot目录的修改所有者为zhangsan
[root@localhost ~]# ls -ld /springboot			 #查看归属

只修改所属组

shell 复制代码
[root@localhost ~]# chown :root /springboot/     #仅修改所属组
[root@localhost ~]# ls -ld /springboot			 #查看归属

递归修改归属关系

shell 复制代码
[root@localhost ~]# chown -R dc /opt/aa          #递归修改/opt/aa的所有者为dc
[root@localhost ~]# ls -ld /opt/aa				 #验证
[root@localhost ~]# ls -ld /opt/aa/bb/
[root@localhost ~]# ls -ld /opt/aa/bb/cc/

实验

shell 复制代码
[root@localhost ~]# mkdir /java05
[root@localhost ~]# chmod g=rwx,o=--- /java05		#设置目录权限
[root@localhost ~]# chown  zhangsan:stugrp /java05
[root@localhost ~]# ls -ld /java05   #zhangsan用户有读写执行的权限,其他用户没有权限

测试

shell 复制代码
[root@localhost ~]# su - zhangsan
[zhangsan@som ~]$ mkdir /java05/aa
[zhangsan@som ~]$ exit
shell 复制代码
[root@localhost ~]# su - lisi					#切换lisi用户
[lisi@som ~]$ mkdir /java05/lisi
mkdir: 无法创建目录"/java05/lisi": 权限不够
[lisi@som ~]$ exit								#退出

可以把lisi加入到组里面,继承组的权限

shell 复制代码
[root@localhost ~]# usermod -G stugrp lisi		#将lisi用户加入到stugrp组
[root@localhost ~]# id lisi
[root@localhost ~]# su - lisi					#切换lisi用户
[lisi@som ~]$ mkdir /java05/lisi				#可以创建目录

去掉所有者的执行权限,zhangsan添加到stugrp组里面,虽然组里面有执行权限,但是依然不能cd

shell 复制代码
[root@localhost ~]# chmod  u-x /java05/			#所有者去掉x权限
[root@localhost ~]# usermod -G stugrp zhangsan	#将zhangsan加入stugrp组		
[root@localhost ~]# su - zhangsan
[zhangsan@som ~]$ cd /java05/
-bash: cd: /java05/: 权限不够

总结: 权限判断步骤

1、判断用户身份(所有者>所属组>其他人 匹配即停止)

2、查看相应身份的权限

什么是IP地址

  • IP地址:网络中唯一标识一台主机
  • IP地址由32个二进制数组成,二进制的世界里只有0和1,二进制逢2进1
  • 每8位加一个. 因此又叫做点分十进制
    • 11111111.11111111.11111111.11111111
    • 255.255.255.255

IP地址分类

  • A类:1-126(127)
  • B类:128-191
  • C类:192-223
  • D类:224-239
  • E类:240-255
  • 工作中常用的地址是A、B、C三类、D和E类分别用于组播和科研

IP的网络位和主机位

  • 网络位:相当于标识区域
  • 主机位:相当于标识顺序
  • 举例
    • 010-6752610
    • 010-6752611
    • 0313-6743121
    • 0313-6743122

IP地址默认网络位与主机位

A类:网络位.主机位.主机位.主机位 例:10.0.0.1

B类:网络位.网络位.主机位.主机位 例:172.25.0.1

C类:网络位.网络位.网络位.主机位 例:192.168.1.1

某个类别中的第一个IP地址和最后一个IP地址均不能直接使用

  • 第一个地址表示 网段
  • 最后一个地址表示 广播地址
    • 192.168.4.0 表示192.168.4.0网段(本网段第一个IP)
    • 192.168.4.255 表示广播地址
    • 192.168.4.1 表示192.168.4.0网段中的第一个可用IP

子网掩码

  • 子网掩码:计算机用来标识网络位和主机位
  • 网络位使用二进制的1 表示
  • 主机位使用二进制的0表示
  • 每8位转换成一个十进制

192.168.4.1-->C类-->192.168.4-->11111111.11111111.11111111.00000000

255.255.255.0

172.25.0.1-->B类-->172.40-->11111111.11111111.00000000.00000000

255.255.0.0

10.0.0.1-->A类-->10-->11111111.00000000.00000000.00000000

255.0.0.0

默认子网掩码

A类: 255.0.0.0 也可以使用8表示(8表示二进制有8个1)

B类: 255.255.0.0 也可以使用16表示(16表示二进制有16个1)

C类: 255.255.255.0 也可以使用24表示(24表示二进制有24个1)

Linux配置IP地址

LINUX系统配置IP地址方法

  • /etc/sysconfig/network-scripts/ifcfg-网卡名
  • nmtui、ip、nmcli

nmcli命令

  • nmcli connection show #查看连接信息

  • 手动配置IP

    • nmcli connection modify 网卡名 ipv4.method manual \

      ipv4.address <IP/子网掩码> ipv4.gateway <网关> ipv4.dns <dns服务器>

      connection.autoconnect yes

    • nmcli connection up 网卡名 #激活网卡

  • 自动配置IP(DHCP分配)

    • nmcli connection modify 网卡名 ipv4.method auto connection.autoconnect yes
    • nmcli connection up 网卡名 #激活网卡
shell 复制代码
[root@localhost ~]# nmcli connection show         		 #查看连接名

配置IP(网卡连接名请以自己的为准,不要照抄)

shell 复制代码
#配置IP地址和网关并实现开机自动连接
[root@localhost ~]# nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.4.7/24  connection.autoconnect yes   
[root@localhost ~]# nmcli connection up ens33     	#激活ens33
[root@localhost ~]# ifconfig            			#查看配置的IP

设置VMnet8网络模式

为虚拟机自动配置IP地址

shell 复制代码
#配置IP地址
]# nmcli  connection  modify ens33 ipv4.method auto connection.autoconnect yes 
[root@localhost ~]# nmcli connection up ens33 
[root@localhost ~]# ping www.baidu.com

SSH远程管理

  • SSH协议,Secure Shell
    • 为客户及提供安全的Shell环境
    • 默认端口:TCP 22
  • OpenSSH服务
    • 服务名:sshd
    • 主程序: /usr/bin/sshd、/usr/bin/ssh
    • 服务端配置文件: /etc/ssh/sshd_config
    • 客户端配置文件: /etc/ssh/ssh_config
  • ssh 命令选项
    • -p 端口:连接到指定的端口

实验拓扑图

  • 将虚拟机RockyLinux8.6使用快照"安装完成"还原,再使用RockyLinux8.6克隆虚拟机A、虚拟机B
  • 虚拟机A远程操作虚拟机B
虚拟机 主机名 IP地址
虚拟机A javasv-A 192.168.8.100
虚拟机B javasv-B 192.168.8.101

配置虚拟机A

  • 根据上方虚拟机需求配置IP地址和主机名(网卡名不要照抄,以自己的为准)
shell 复制代码
[root@localhost ~]# hostnamectl set-hostname javasv-A	#修改主机名
[root@localhost ~]# exit							#退出重新打开主机名即可生效
[root@javasv-A ~]# nmcli connection show				#查看自己的网卡连接名
[root@javasv-A ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.8.100/24 connection.autoconnect yes		#配置IP地址
[root@javasv-A ~]# nmcli connection up ens160				   #激活网卡

配置虚拟机B

  • 根据上方虚拟机需求配置IP地址和主机名(网卡名不要照抄,以自己的为准)
shell 复制代码
[root@localhost ~]# hostnamectl set-hostname javasv-B	#修改主机名
[root@localhost ~]# exit							#退出重新打开主机名即可生效
[root@javasv-B ~]# nmcli connection show			#查看自己的网卡连接名
[root@javasv-B ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.8.101/24 connection.autoconnect yes	     #配置IP地址
[root@javasv-B ~]# nmcli connection up ens160					#激活网卡

环境准备

  • 关闭防火墙和SELinux,虚拟机A、虚拟机B都做

虚拟机A

shell 复制代码
[root@javasv-A ~]# systemctl stop firewalld 			#停止防火墙服务
[root@javasv-A ~]# systemctl disable firewalld			#将防火墙设置为开机不自启
shell 复制代码
[root@javasv-A ~]# vim /etc/selinux/config				#修改SElinux状态
...此处省略1万字...
7 SELINUX=disabled										#将第7行enforcing改为disabled
...此处省略1万字...
[root@javasv-A ~]# reboot								#重启生效

虚拟机B

shell 复制代码
[root@javasv-A ~]# systemctl stop firewalld 			#停止防火墙服务
[root@javasv-A ~]# systemctl disable firewalld			#将防火墙设置为开机不自启
shell 复制代码
[root@javasv-A ~]# vim /etc/selinux/config				#修改SElinux状态
...此处省略1万字...
7 SELINUX=disabled										#将第7行enforcing改为disabled
...此处省略1万字...
[root@javasv-A ~]# reboot								#重启生效

远程实验

  • 远程连接格式:ssh [选项] 用户@主机
shell 复制代码
[root@javasv-A ~]# ssh root@192.168.8.101				#虚拟机A远程虚拟机B
...
Are you sure you want to continue connecting (yes/no/[fingerprint])?  yes	#首次回答yes
root@192.168.8.101's password:							#输入密码(为了安全不显示)
[root@javasv-B ~]#										#此时已经远程连接虚拟机B
[root@javasv-B ~]# exit									#退出远程连接

修改默认端口,pc207主机操作

shell 复制代码
[root@javasv-B ~]# vim /etc/ssh/sshd_config				#修改配置文件
...此处省略1万字...
17 Port 8022											#第17行去掉注释,端口号改为8022
...此处省略1万字...
[root@javasv-B ~]# systemctl restart sshd				#重启服务

虚拟机A再次远程虚拟机B

  • -p选项用于指定端口号
shell 复制代码
[root@javasv-A ~]# ssh -p 8022 root@192.168.8.101	#虚拟机A远程虚拟机B
root@192.168.8.101's password:						#输入密码(为了安全不显示)
[root@javasv-B ~]#

注:如果远程失败,请关闭防火墙和SElinux,当然上方环境准备中已关闭了防火墙和SElinux

scp指令

  • scp基于ssh远程管理,安全复制工具scp
    • 上传(源服务器角度):scp /路径/源数据 用户@对方IP地址:/路径/
    • 下载(目标服务器角度):scp 用户@对方IP地址:/路径/源数据 /路径/

把虚拟机A的/boot远程拷贝至虚拟机B的/opt

shell 复制代码
[root@javasv-A ~]# scp -r  /boot/  root@192.168.8.101:/opt/ 

把虚拟机B的/boot远程拷贝至虚拟机A的/opt

shell 复制代码
[root@javasv-A ~]# scp -r  root@192.168.8.101:/boot    /opt/  
[root@javasv-A ~]# ls  /opt/

远程管理进阶

  • 实现ssh无密码验证
  • 生成公钥与私钥,完成ssh无密码验证

生成公钥与私钥,虚拟机A操作

shell 复制代码
[root@javasv-A ~]# ssh-keygen     						#一路回车
[root@javasv-A ~]# ls /root/.ssh/						#查看密钥

将公钥传递给对方,虚拟机A操作

shell 复制代码
[root@javasv-A ~]# ssh-copy-id  root@192.168.8.101
root@192.168.8.101's password:           				#输入密码
[root@javasv-A ~]# ssh root@192.168.8.101				#验证
[root@javasv-B ~]#										#此时已经无密码连接至虚拟机B

WindTerm远程工具

  • windterm压缩包解压,发送快捷方式至桌面即可

补充

虚拟网络类型

隔离模式

  • Guest可访问同一虚拟交换机上的其他Guest,但无法访问Host所在外部网络

VMware-NAT模式

  • VMware的NAT(Network Address Translation)模式是一种网络连接模式,它允许虚拟机通过主机的网络连接与外部网络通信。
  • 在NAT模式下,VMware会为主机创建一个虚拟网络适配器,并为其分配一个私有IP地址。主机通过这个私有IP地址与虚拟机进行通信。当虚拟机需要访问外部网络时,VMware会将其请求转发给主机,再由主机通过NAT技术将请求发送到外部网络,然后将响应传递回虚拟机。
相关推荐
Mr.Java.41 分钟前
Windows本地搭建Redis集群(集群模式)
java·linux·运维·服务器·spring boot·redis·spring
qq_3775727741 分钟前
firewall
linux·docker
23zhgjx-hyh41 分钟前
VRRP多网关负载分担
运维·服务器·网络
㣲信团队1 小时前
ubuntu20.04复现 Leg-KILO
linux
是阿建吖!1 小时前
【Linux】基础IO(内存文件)
linux·运维·服务器
东软吴彦祖2 小时前
实现基于分布式的LAMP架构+NFS实时同步到备份服务器
linux·运维·服务器·mysql·架构·wordpress
zym大哥大4 小时前
Linux环境变量
linux·jvm
原来花开5 小时前
记录linux websocket握手时间过长问题
linux·运维·websocket
大明湖的狗凯.6 小时前
Servlet、omcat服务器架构与工作原理
服务器·servlet·架构
王解6 小时前
企业级包管理器之搭建 npm 私有服务器 (6)
服务器·前端·npm