1.vim如何编辑文件,编辑后如何保存,如何不保存修改
- 进入
vim
编辑模式:- 打开文件:
vim 文件名
- 如果文件不存在,
vim
会创建一个新文件。
- 打开文件:
- 进入插入模式进行编辑:
- 按下
i
键进入插入模式,这时可以开始编辑文件内容。
- 按下
- 保存文件并退出:
- 按
Esc
键退出插入模式,回到普通模式。 - 输入
:w
然后按Enter
键保存文件。 - 若要保存并退出,输入
:wq
或:x
,然后按Enter
键。
- 按
- 不保存修改并退出:
- 按
Esc
键退出插入模式。 - 输入
:q!
然后按Enter
键,强制退出不保存修改。
- 按
2.什么是IP地址,什么是端口,两者有什么关系
-
IP 地址(Internet Protocol Address):
-
定义:IP 地址是一个用于标识网络上设备的唯一地址。每个连接到互联网的设备(如计算机、手机、路由器等)都会被分配一个 IP 地址,确保数据可以准确地发送到正确的设备。
-
格式:IP 地址有两种常见的版本:
- IPv4:如
192.168.1.1
,由4个数字(每个数字介于0-255之间)组成,每个数字之间用“.”分隔。 - IPv6:如
2001:0db8:85a3:0000:0000:8a2e:0370:7334
,由8组16进制数字组成,每组数字之间用“:”分隔。
- IPv4:如
-
-
端口(Port):
- 范围:端口号范围从0到65535,通常分为三类:
- 知名端口(Well-known Ports):0-1023,用于一些标准的服务,如 HTTP(端口 80)、HTTPS(端口 443)、FTP(端口 21)。
- 注册端口(Registered Ports):1024-49151,用于特定应用程序。
- 动态或私有端口(Dynamic/Private Ports):49152-65535,通常由客户端应用程序临时使用。
- 范围:端口号范围从0到65535,通常分为三类:
-
IP 地址与端口的关系:
-
通信的双重作用:一个IP地址可以有多个端口,而每个端口通常对应着设备上的不同应用或服务。换句话说,IP 地址标识了设备,而端口标识了该设备上的具体应用。
-
如何协同工作:当你访问一个网站时,你的浏览器通过指定的IP地址连接到目标服务器(比如
192.168.1.1
),然后通过端口(通常是80端口)请求访问网页。比如,访问http://192.168.1.1:80
,这里80
就是 HTTP 服务的端口。
-
3.端口号的范围是多少
-
范围:端口号范围从0到65535,通常分为三类:
-
知名端口(Well-known Ports):0-1023,用于一些标准的服务,如 HTTP(端口 80)、HTTPS(端口 443)、FTP(端口 21)。
-
注册端口(Registered Ports):1024-49151,用于特定应用程序。
-
动态或私有端口(Dynamic/Private Ports):49152-65535,通常由客户端应用程序临时使用。
-
4.什么是dhcp,什么是静态地址
DHCP 是一种自动分配 IP 地址的协议,适合大多数设备,减少了网络管理的复杂度。
静态地址 是手动配置的固定 IP 地址,适用于那些需要长期固定地址的设备。
-
DHCP(Dynamic Host Configuration Protocol):
-
定义:DHCP 是一种自动化的协议,用于在设备加入网络时自动分配 IP 地址 和其他网络配置信息(如网关地址、DNS 服务器等)。它使得设备无需手动配置 IP 地址,而是由网络中的 DHCP 服务器动态地分配。
-
工作原理:
- 发现(Discover):设备(如计算机或手机)启动时发送一个 DHCP 请求包,寻找 DHCP 服务器。
- 提供(Offer):DHCP 服务器响应设备的请求,提供一个可用的 IP 地址以及其他网络配置信息。
- 请求(Request):设备选择其中一个 DHCP 服务器提供的配置,并向其发送请求确认。
- 确认(Acknowledge):DHCP 服务器确认并分配 IP 地址给设备,并设置租期(通常是几个小时到几天)。
-
优点:
- 自动化:设备接入网络时自动获得 IP 地址,简化网络管理。
- 灵活性:DHCP 可动态分配 IP 地址,避免手动管理。
-
缺点:
- IP 地址是临时的,会有租期限制(设备断开后,IP 地址可能会分配给其他设备)。
- 对于需要稳定、长期固定 IP 的应用(如服务器),可能不太适合。
-
-
静态地址(Static IP Address):
-
定义:静态地址指的是手动为设备配置一个固定的 IP 地址,设备每次连接到网络时都会使用这个预设的地址,不会发生变化。
-
工作原理:
- 用户或管理员手动配置设备的 IP 地址,通常需要设置 IP 地址、子网掩码、网关地址和 DNS 服务器。
- 设备每次连接网络时,都会使用这个静态的配置,不会改变。
-
优点:
- 稳定性:静态 IP 地址是固定的,适合需要长期稳定连接的设备,如服务器、打印机、IP 摄像头等。
- 可靠性:对于某些需要精确通信的应用(如远程访问、网络服务等),静态 IP 更加可靠。
-
缺点:
- 手动配置:每个设备都需要手动配置 IP 地址,管理起来较为繁琐。
- 冲突风险:如果配置不当,可能会出现 IP 地址冲突,导致网络连接问题。
-
5.IP的配置文件路径是?如何更改服务的IP地址为静态地址
设置静态地址
上面的端口映射方式虽然ssh连接虚拟机简单了,但是如果虚拟机里运行了一个服务,windows想访问这个服务还是需要看一下虚拟机的ip地址,所以不如配置成静态的地址
首先在VMware中查看子网IP并修改网关,我这里子网IP为192.168.142.0
,网关设置为192.168.142.1
,该虚拟机对应的网卡名为VMnet8
然后在「网络和Internet设置」>「更改适配器选项」>「VMnet8」>「属性」>「Internet 协议版本 4 (TCP/IPv4)」>「属性」>「修改IP地址」
修改后打开虚拟机,修改/etc/netplan
路径下的网络配置文件
这里可能不同虚拟机的文件名是不同的,可以看一下文件内容,默认的内容大概是这样的
注意这里的ens33
,自己原来文件中是什么用什么,其它的有是ens32
的,修改后的内容:
# This is the network config written by 'subiquity'network: renderer: networkd ethernets: ens33: # 上面 ip addr 命令查看到的网卡编号 addresses: - 192.168.142.100/24 # 子网 CIDR 由 “子网 IP 地址” 192.168.142.0 和 “子网掩码” 255.255.255.0 计算得到:本机私有 IP 地址,在子网允许的 IP 范围内自定义(注意如果有多个虚拟机的,不要互相冲突) #gateway4: 192.168.142.1 # IPv4 网关 IP,上面“NAT 设置”可查看得到,注:gateway4 配置已过时,使用以下的 default routes 配置代替 routes: - to: default via: 192.168.142.1 # IPv4 网关 IP,上面“NAT 设置”可查看得到 nameservers: addresses: - 114.114.114.114 # 首选 DNS 服务器 - 8.8.8.8 # 备用 DNS 服务器 search: [] # 搜索域,这里为空 version: 2
修改后使用netplan apply
应用网络配置
重启被覆盖问题
我这里修改/etc/netplan
路径下的文件并netplan apply
应用后,通过ifconfig
查看是生效的,但是重启又会恢复,后来发现是Cloud-Init 覆盖了配置,所以还需要修改这个的配置文件
我这里查看/etc/cloud/cloud.cfg.d/
路径,发现90-installer-network.cfg
这个文件的内容和上面默认的50-cloud-init.yaml
是一样的,所以修改了90-installer-network.cfg
这个文件
将该文件的内容修改为和上面50-cloud-init.yaml
完全一致即可,以下是不带注释的代码:
# This is the network config written by 'subiquity'network: renderer: networkd ethernets: ens33: addresses: - 192.168.142.100/24 routes: - to: default via: 192.168.142.1 nameservers: addresses: - 114.114.114.114 - 8.8.8.8 search: [] version: 2
6.什么是网关,什么是子网掩码
-
网关(Gateway):
-
定义:网关是一个网络设备或路由器,它作为不同网络之间的中介,负责数据的转发和路由。当一个设备(如计算机、手机等)需要与不同子网或外部网络(如互联网)中的设备进行通信时,它会将数据发送到网关,由网关负责将数据转发到目标网络。
-
作用:
- 跨网络通信:如果设备所在的网络与目标设备不在同一个子网内,设备会通过网关将数据包发送到目标网络。
- 网络地址转换(NAT):网关通常会进行 NAT(网络地址转换),将内部网络的私有 IP 地址转换为公网 IP 地址,以便与外部网络通信。
- 路由功能:网关会根据路由表来决定数据包的转发路径,确保数据能顺利到达目标设备。
-
举个例子:在家庭或小型企业网络中,通常会有一个路由器作为网关。家庭的计算机和设备通常使用路由器的 IP 地址作为默认网关,通过该路由器访问互联网。
-
默认网关:通常设备会配置一个默认网关地址(通常是路由器的 IP 地址)。当设备要与其他子网的设备通信时,它会将数据发送到默认网关,网关再决定如何将数据传递给目标设备。
-
-
子网掩码(Subnet Mask):
-
定义:子网掩码是一个用来区分IP地址中的网络部分和主机部分的32位数字。它帮助路由器和设备确定哪些设备在同一个子网内,哪些设备需要通过网关来进行跨子网通信。
-
格式:子网掩码与 IP 地址类似,通常表示为四组数字(每组数字范围为0-255),如
255.255.255.0
或255.255.0.0
。 -
作用:
- 区分网络与主机部分:通过与 IP 地址进行“按位与”运算,子网掩码可以帮助确定 IP 地址中的网络部分和主机部分。网络部分用于识别子网,主机部分用于标识同一子网中的具体设备。
- 子网划分:子网掩码的不同配置能够帮助将一个大的网络划分成多个小的子网,提高网络的管理效率和性能。
-
举个例子:
- 假设设备的 IP 地址是
192.168.1.10
,子网掩码是255.255.255.0
。这意味着192.168.1
是网络地址,.10
是设备的主机地址。所有 IP 地址以192.168.1
开头的设备都在同一个子网内,不需要通过网关通信。 - 如果设备的 IP 地址是
192.168.2.10
,由于子网掩码为255.255.255.0
,它会与192.168.1.10
不在同一子网中,因此需要通过网关来通信。
- 假设设备的 IP 地址是
-
-
网关与子网掩码的关系:
-
子网掩码确定网络的边界:子网掩码告诉设备如何通过 IP 地址来区分同一网络内的设备和不同网络之间的设备。
-
网关的作用:当设备需要访问不同子网的设备时,它会将数据发送到网关。网关接收到数据后,会使用路由信息将数据转发到正确的目标网络。
-
7.一般网络中(比如家庭网络),常用的网关地址和子网掩码是多少
-
网关地址:
-
在大多数家庭网络中,路由器通常充当网关,连接家庭内部网络与外部互联网。大部分家庭路由器默认的网关地址通常为 192.168.1.1 或 192.168.0.1。
-
常见网关地址:
- 192.168.1.1:这通常是 Linksys、TP-Link 和一些其他品牌路由器的默认网关地址。
- 192.168.0.1:这是 D-Link、NETGEAR 和一些其他品牌路由器的默认网关地址。
- 其他常见网关地址:如 10.0.0.1 或 192.168.2.1,也有一些路由器使用这些默认网关地址。
-
如果设备要访问位于不同子网的设备,它会发送数据到网关,网关再负责将数据转发到目标设备。
-
-
子网掩码:
-
家庭网络中的 子网掩码 通常为 255.255.255.0。
-
子网掩码解释:
- 255.255.255.0 表示网络中的 IP 地址的前 24 位(即
255.255.255
)用于表示网络部分,剩下的 8 位(即0
)用于表示主机部分。这个配置表示最多可以容纳 254 个设备(IP 地址从 192.168.1.1 到 192.168.1.254,.0
代表网络地址,.255
代表广播地址)。这是大多数家庭网络的常见配置。
- 255.255.255.0 表示网络中的 IP 地址的前 24 位(即
-
常见子网掩码:
-
255.255.255.0:适用于大多数家庭网络。可以支持最多 254 个设备连接。
-
255.255.0.0:这种掩码通常用于更大的子网,适用于需要更多设备的网络环境。
-
-
8.什么是root用户,什么是普通用户,两者有什么区别
-
root 用户:
-
定义:
root
是类 Unix 操作系统(如 Linux、macOS、BSD 等)中的超级用户,拥有 系统的所有权限。它能够执行几乎所有的操作,包括修改系统文件、安装或删除软件、管理用户权限等。 -
用途:
- root 用户通常用于系统管理员或高级用户进行系统管理任务。
- 在很多操作系统中,root 用户默认是禁用的,管理员需要通过
sudo
或其他方式来暂时获得 root 权限。
-
-
普通用户:
- 定义:普通用户是指具有有限权限的用户账户。在操作系统中,普通用户通常只能访问自己拥有的文件和资源,而不能访问或修改系统级别的配置和文件。
- 用途:
- 普通用户适用于日常的使用需求,如浏览网页、编写文档、进行娱乐等。
- 它提供了一种安全性,防止普通用户对系统造成不必要的破坏。
-
root 用户与普通用户的区别:
特性 | root 用户 | 普通用户 |
---|---|---|
权限级别 | 拥有完整的系统权限,可以执行任何操作 | 权限受限,不能修改系统设置或访问系统文件 |
操作范围 | 可以访问和修改所有文件、配置、软件等 | 只能访问和修改自己拥有的文件及目录 |
用户管理 | 可以创建、删除、修改其他用户的账户 | 无法创建、删除或修改其他用户的账户 |
系统控制 | 能够启动和停止服务,安装和卸载软件,修改系统配置 | 无法执行系统级管理操作,如安装软件或修改系统设置 |
安全性 | 如果不小心使用,可能会导致整个系统的安全问题 | 因权限受限,风险较小,但仍需保护账户安全 |
9.用户组是什么,与用户有什么关系
-
用户组的定义:
-
用户组是一个包含多个用户的集合,每个用户组有一个组名和一个组标识符(GID)。用户组的作用是将一群用户统一管理,便于设置访问权限、资源共享等。
-
用户组通常被用来统一管理一组具有相同访问权限的用户。例如,一个名为
developers
的用户组可能包含所有开发人员,而admins
用户组则可能包含所有的系统管理员。
-
-
用户组的作用:
-
简化权限管理:通过给用户分配到不同的用户组,管理员可以为整个组设置统一的权限,而无需单独为每个用户设置权限。这样可以提高管理效率,避免遗漏。
-
权限控制:在 Unix/Linux 系统中,文件或目录的访问权限不仅是针对单个用户的,还涉及到文件的所有者、所属组以及其他用户。通过用户组,系统可以很方便地控制哪些用户可以访问某个资源。
-
资源共享:用户组允许多个用户共享某些资源(如文件夹、文件、打印机等)。比如一个开发组的成员可以共享代码库或开发工具。
-
-
用户组与用户的关系:
-
每个用户都有一个或多个用户组:在 Linux/Unix 系统中,每个用户都会至少属于一个用户组。每个用户在创建时会自动成为一个与用户名相同的默认组的成员(例如,创建一个用户名为
alice
的用户时,系统会创建一个名为alice
的组,并把alice
加入到该组中)。 -
主用户组与附加用户组:
- 主用户组:每个用户都有一个主用户组,这个用户组通常是与用户名相同的默认组。
- 附加用户组:用户还可以属于多个附加用户组。这样可以让用户同时拥有多个组的权限。例如,某个用户可能属于
developers
(开发者组)和admins
(管理员组)两个组。
-
组权限与文件权限:每个文件都有三个级别的访问权限:
- 用户权限、组权限和其他权限。
- 用户权限是文件所有者(用户)对该文件的访问权限。
- 组权限是该文件所属用户组成员对该文件的访问权限。
- 其他权限是所有其他用户对该文件的访问权限。
- 例如,如果一个文件的权限是
rwxr-xr--
,那么:- rwx:文件所有者(用户)具有读、写、执行权限。
- r-x:文件所属用户组的成员具有读、执行权限。
- r—:其他用户只能读取该文件,无法修改或执行。
- 用户权限、组权限和其他权限。
-
10.什么是sshd服务,默认端口是多少
-
SSHD 服务的作用:
-
远程登录:通过 SSH,用户可以通过命令行远程登录到另一台计算机,执行命令、管理文件、配置系统等。
-
安全传输文件:SSH 协议除了支持远程登录外,还支持通过
scp
(secure copy)和sftp
(secure file transfer protocol)等工具安全传输文件。 -
加密通信:SSHD 服务加密了客户端与服务器之间的通信,防止数据在传输过程中被窃听或篡改。
-
身份验证:SSHD 通过密码、密钥或其他方式验证客户端的身份,确保只有授权用户能够访问系统。
-
-
默认端口:
- 默认情况下,SSHD 服务监听 22 端口。这是 SSH 协议的标准端口,因此当你通过 SSH 客户端连接服务器时,默认会尝试连接到服务器的 22 端口。
11.sshd的配置文件在哪里,如何修改默认端口
SSHD 的配置文件通常位于 /etc/ssh/sshd_config
,这个文件控制着 SSH 服务的各种设置,包括端口号、登录方式、允许的用户等。
-
打开终端,使用文本编辑器编辑
sshd_config
文件。以nano
编辑器为例:sudo nano /etc/ssh/sshd_config -
找到或添加
Port
配置行。默认情况下,配置文件中会有如下的内容:#Port 22去掉注释符号
#
,并修改端口号为你想要的端口。例如,要将端口更改为 2222,可以将其改为:Port 2222 -
保存并退出编辑器
- 在
nano
编辑器中,按Ctrl + X
退出,按Y
保存更改,然后按Enter
确认文件名。
- 在
-
重启 SSH 服务
更改配置文件后,需要重启 SSH 服务以使更改生效。使用以下命令重启 SSH 服务:
Terminal window sudo systemctl restart sshd -
验证修改
你可以使用以下命令确认 SSH 服务是否监听在新端口:
Terminal window sudo netstat -tuln | grep ssh
12.sshd如何禁止/允许root用户远程登录
打开 SSH 配置文件 /etc/ssh/sshd_config
进行编辑:
-
想禁止root用户远程登录,找到
PermitRootLogin
这一行。如果该行被注释掉了(前面有#
),去掉注释并将其设置为no
-
想允许root用户远程登录,则去掉注释并将其设置为
yes
重启 SSH 服务:sudo systemctl restart sshd
13.sshd如何禁止/允许用户远程使用密码登录
要控制用户是否可以通过密码进行 SSH 登录,可以通过修改 sshd_config
配置文件中的 PasswordAuthentication
选项来实现。
打开 SSH 配置文件 /etc/ssh/sshd_config
进行编辑,找到 PasswordAuthentication
这一行,去掉注释,如果想禁止用户远程使用密码登录就将这行设置成no
,允许就设置成yes
,例如:
PasswordAuthentication no
按 Ctrl + X
退出,按 Y
保存更改,然后按 Enter
确认文件名。
重启 SSH 服务使其生效:sudo systemctl restart sshd
14.除了使用密码登录之外,还能使用什么方式登录服务器
SSH支持的登录方式:
- SSH 密钥认证(最常用、安全)
- 基于证书的认证(用于企业环境)
- Kerberos 认证(适用于大型网络环境)
- 两步验证(2FA) 和 多重身份验证(MFA)(增强安全性)
- TCP Wrappers(基于 IP 地址的访问控制)
- 外部认证服务(如 LDAP、RADIUS)
15.文件的rwx权限分别是什么意思,如何用数字表示
文件的权限针对三类对象进行定义
-
owner 属主,缩写u
-
group 属组,缩写g
-
other 其他,缩写o
每个文件针对每类访问者定义了三种主要权限
-
r:Read 读
-
w:Write 写
-
x:Execute 执行
-
另 X:针对目录加执行权限,文件不加执行权限(因文件具备执行权限有安全隐患)
⚠️注意:root账户不受文件权限的读写限制,执行权限受限制
对于文件和目录来说,r,w,x有着不同的作用和含义:
-
针对文件:
-
r:读取文件内容
-
w:修改文件内容
-
x:执行权限对除二进制程序以外的文件没什么意义
-
-
针对目录:目录本质可看做是存放文件列表、节点号等内容的文件
-
r:查看目录下的文件列表
-
w:删除和创建目录下的文件
-
x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权限)
-
16.文件权限777是什么意思
对于上面提到的rwx,分别对应4,2,1:
- r:4
- w:2
- x:1
所以7就代表4+2+1,也就是rwx
举个例子:
rwx rw- r–111 110 1007 6 4
rwx rwx rwx111 111 1117 7 7
修改文件权限使用chmod
命令:
方法1:mode法
-
格式:
chmod who opt per file
- 例如:
chmod -R +X dir
,给dir目录添加X执行权限,dir目录下文件不添加执行权限(如果dir目录下有文件已具备执行权限,则添加该文件执行权限)
- 例如:
-
Terminal window who:u g o a(all)opt:+ – =per:r w x X
方法2:数字法
- 格式:chmod XXX file
- 例:
chmod 764 file
给file文件添加rwxrw-r–
权限
- 例:
17.文件权限如何与文件所属和文件组配合
假设我们有一个文件 myfile.txt
,它的权限设置为 rwxr-xr--
。我们可以分解它如下:
- 所有者权限 (
rwx
):表示文件所有者(User)对文件有 读(r)、写(w)、执行(x)权限。 - 用户组权限 (
r-x
):表示文件所属的用户组(Group)对文件有 读(r)和 执行(x)权限,但没有 写(w)权限。 - 其他用户权限 (
r--
):表示其他用户(Others)对文件有 读(r)权限,但没有 写(w)和 执行(x)权限。
权限和文件所属、文件组之间的配合是基于以下几个方面:
- 文件所有者的权限:文件所有者可以修改文件的内容、执行文件等。这个权限是文件创建时自动赋予的,或者由管理员或文件所有者通过命令(如
chown
)更改。 - 文件组的权限:文件所属的用户组中的所有成员都可以根据文件组的权限进行操作。如果文件组成员希望修改文件,必须具备文件组的写权限(
w
)。 - 其他用户的权限:与文件所有者和文件组无关的其他用户,只能根据文件的“其他用户”权限来进行操作。通常,其他用户的权限设置较为严格,避免对文件进行不必要的修改或删除。
设置文件所有者和文件组:可以使用 chown
命令来修改文件的所有者和文件组。
# 将文件所有者设置为 "alice",将文件组设置为 "admins"chown alice:admins myfile.txt
修改文件权限:使用 chmod
命令来更改文件的权限。
# 设置文件权限为 rwxr-xr--chmod 754 myfile.txt
-
这表示:
-
文件所有者(Alice)具有读、写、执行权限(
rwx
)。 -
文件组(
admins
)具有读和执行权限(r-x
)。 -
其他用户具有读权限(
r--
)。
-
18.创建两个用户,dev、ops
sudo adduser devsudo adduser ops
19.创建一个组,ymyw,将上面两个用户加入此组
sudo gruopadd ymywsudo usermod -aG ymyw devsudo usermod -aG ymyw ops
-a
选项表示追加用户到指定组,而不是替换掉当前的组。-G
选项指定要添加用户的组。
验证:
groups devgroups ops
20.创建一个文件,设置其权限只允许ymyw组内人员访问
❯ vim ymyw_group.md❯ lltotal 16Kdrwxr-xr-x 3 root root 4.0K Aug 15 01:05 frpdrwxr-xr-x 4 root root 4.0K Aug 13 19:56 mx-spacedrwx------ 3 root root 4.0K Aug 14 23:54 snap-rw-r--r-- 1 root root 16 Aug 16 10:46 ymyw_group.md❯ chown :ymyw ymyw_group.md❯ chmod 660 ymyw_group.md❯ lltotal 16Kdrwxr-xr-x 3 root root 4.0K Aug 15 01:05 frpdrwxr-xr-x 4 root root 4.0K Aug 13 19:56 mx-spacedrwx------ 3 root root 4.0K Aug 14 23:54 snap-rw-rw---- 1 root ymyw 16 Aug 16 10:46 ymyw_group.md
6
表示文件的所有者(root
)和组(ymyw
)具有读写权限。0
表示其他用户没有任何权限。
21.文件的x权限,和目录的x权限有什么作用
-
文件的
x
权限对于文件,
x
权限表示“可执行权限”。当一个文件具有执行权限时,表示该文件可以作为程序或脚本执行。-
作用:
- 如果文件是一个可执行程序(如二进制文件),则可以直接运行它。
- 如果是脚本文件(如
bash
脚本、Python 脚本等),可以使用相应的解释器运行该脚本。
-
示例:
-
假设有一个文件
script.sh
,如果你赋予它执行权限:chmod +x script.sh然后你就可以执行这个脚本:
./script.sh -
如果没有执行权限,即使是一个可执行的程序文件,也无法直接运行。
-
-
-
目录的
x
权限对于目录,
x
权限表示“进入目录”的权限,或者说“搜索目录”的权限。-
作用:
- 如果一个用户对一个目录有
x
权限,表示他可以进入该目录,也可以访问该目录内的文件,即使他没有读取目录的内容。 x
权限允许用户使用该目录中的文件或子目录进行操作,例如进入子目录、访问文件等。
- 如果一个用户对一个目录有
-
示例:
-
假设有一个目录
dir
,如果你赋予它x
权限:chmod +x dir那么你可以进入该目录:
cd dir -
如果没有
x
权限,即使你对目录有读取权限(r
),你仍然无法进入目录。换句话说,没有x
权限,你无法在该目录中执行任何操作,包括查看文件和子目录。
-
-
22.Linux常用的终端软件有哪些
- 偏轻量化:像 XTerm, LXTerminal, 或 urxvt 都是不错的选择。
- 有更多的功能和自定义:像 Terminator, Konsole, 和 Alacritty 可能会更合适。
- 需要简单易用和多标签支持:可以考虑 GNOME Terminal, Deepin Terminal, 或 Sakura。
23.如何通过终端软件(如 SSH 客户端)连接到远程 Linux 服务器?并说明常见问题的排查方法
WindTerm
vscode
-
命令格式: 在终端输入以下命令来连接远程服务器:
ssh username@hostname_or_ipusername
:远程服务器的用户名。hostname_or_ip
:远程服务器的 IP 地址或域名。
-
输入密码: 在连接时,系统会提示你输入远程用户的密码。输入密码时,字符不会显示(这是正常现象)。
-
使用密钥登录(可选): 如果服务器设置了密钥对认证(而不是密码),你可以使用私钥进行登录:
ssh -i /path/to/your/private_key username@hostname_or_ip这样就不需要输入密码,而是通过密钥文件进行认证。
-
指定端口(如果不是默认端口): 如果远程服务器使用非默认的端口(默认是 22),可以通过
-p
参数指定端口:ssh -p port_number username@hostname_or_ip
常见问题及排查方法
1. “Connection refused” 错误
-
问题描述:你尝试连接服务器时,收到 “Connection refused” 错误,表示无法建立连接。
-
排查方法:
-
检查 SSH 服务是否运行:远程服务器上的 SSH 服务可能未启动。在服务器上运行以下命令确认 SSH 服务正在运行:
sudo systemctl status ssh如果服务未启动,可以通过以下命令启动:
sudo systemctl start ssh -
检查防火墙设置:防火墙可能阻止了 SSH 连接,检查服务器的防火墙设置是否允许 22 端口(或自定义端口)的访问:
sudo ufw allow ssh -
确认服务器 IP 地址正确:确保连接的 IP 地址或域名正确,且服务器是可达的。
-
2. “No route to host” 错误
-
问题描述:你收到 “No route to host” 错误,表示无法访问目标主机。
-
排查方法:
-
检查服务器网络是否可用:使用
ping
命令检查是否可以到达远程服务器:ping hostname_or_ip如果无法 ping 通,说明网络连接有问题,可能是网络故障或防火墙配置问题。
-
检查路由表:确保服务器的路由设置正确,特别是如果使用了 VPN 或代理等中间设备。
-
3. “Permission denied” 错误
-
问题描述:你收到 “Permission denied” 错误,表示身份验证失败。
-
排查方法:
-
检查用户名和密码是否正确:确保提供的用户名和密码正确。
-
检查 SSH 密钥:如果使用密钥认证,确保私钥文件权限正确并且匹配远程服务器的公钥。私钥文件的权限应该是 600:
chmod 600 /path/to/your/private_key -
检查 SSH 配置文件:有时服务器上的 SSH 配置文件(
/etc/ssh/sshd_config
)可能限制了某些用户或认证方式,检查是否有相关的限制。
-
4. “Host key verification failed” 错误
-
问题描述:你连接到服务器时,收到 “Host key verification failed” 错误,表示主机密钥验证失败。
-
排查方法:
-
删除已保存的旧密钥:SSH 客户端会保存已连接服务器的主机密钥,如果服务器的密钥发生变化,会出现此错误。你可以通过删除
~/.ssh/known_hosts
中对应的记录来解决:ssh-keygen -R hostname_or_ip -
重新连接:再次尝试连接时,系统会提示你确认新的主机密钥,输入
yes
即可。
-