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技术将请求发送到外部网络,然后将响应传递回虚拟机。
相关推荐
你无法关注此用户1 小时前
CentOS7搭建安全FTP服务器指南
运维·服务器
轻松Ai享生活1 小时前
linux 日志详解
linux
小白的代码日记2 小时前
Linux常用指令
linux·运维·服务器
用户7227868123442 小时前
iptables服务详解
服务器
月舞之剑2 小时前
linux离线安装nodejs
linux·node.js
维尔切2 小时前
Linux中Https配置与私有CA部署指南
linux·运维·https
小熊h2 小时前
【自动化备份全网服务器数据项目】
linux·服务器·自动化·备份数据
key_Go3 小时前
18.WEB 服务器
服务器·前端·firefox
懒散猴4 小时前
【无标题】centos 配置阿里云的yum源
linux·阿里云·centos
果子⌂4 小时前
云原生环境 Prometheus 企业级监控实战
linux·运维·服务器·kubernetes·云计算·prometheus