云計算學習筆記——日志、SELinux、FTP、systemd篇

《云計算學習日記Day15》—— 從零開始的云計算之旅
今天是系統學習云計算的第十五天,記錄了關于我的云計算學習,后續將每日更新我的筆記。歡迎大家一起來學習,如果內容有遺漏和錯誤,還請大家多多指正和包涵,謝謝大家

因為前一節我們已經掌握了遠程控制ssh的使用,所以之后我選擇用windows的WindTerm來遠程管理這些虛擬機,更加方便一些

關于遠程管理,還可以補充一些內容:

1.tmux防止遠程管理中斷

簡單描述一下,當我們在進行遠程管理的時候,可能會因為突發情況(服務器停擺等)與遠程主機斷開連接,這樣會導致我們正在進行的任務中斷,進而造成任務失敗、內存損失等。但是我們使用tmux可以保證我們意外斷開連接時,當前任務繼續完成

首先安裝amux:yum -y install tmux

然后直接運行:

命令:tmux #進入tmux會話

2.tmux多窗口(多會話)

命令:tmux list-sessions #列出已有會話

命令:tmux kill-server #殺死所有會話

日志管理

日志概述

日志的功能

  • 系統和程序的日記本
    • 記錄系統、程序運行中發生的各種事件
    • 通過查看日志,了解及排除故障
    • 信息安全控制的“依據”

內核及系統日志

  • 由系統服務rsyslog統一記錄/管理
    • 日志消息采用文本格式
    • 主要記錄時間發生的時間、主機、進程、內容
  • 常見的日志文件
日志文件主要用途
/var/log/messages記錄內核消息、各種服務的公共消息
/var/log/cron記錄與cron計劃任務相關的消息
/var/log/maillog記錄郵件收發相關的消息
/var/log/secure記錄與訪問限制相關的安全消息

用戶日志

  • 由登錄程序負責記錄/管理
    • 日志消息采用二進制格式
    • 記錄登錄用戶的時間來源、執行的命令等信息
日志文件主要用途
/var/log/lastlog記錄最近的用戶登錄事件
/var/log/wtmp記錄成功的用戶登錄/注銷事件
/var/log/btmp記錄失敗的用戶登錄事件

日志分析

查看文本日志消息

  • 通用分析工具
    • tail、tailf、less、grep等文本瀏覽/檢索命令
    • awk、sed等格式化過濾工具
  • 專用工具分析
    • ELK日志分析平臺
    • Elasticesearch、k'iba'na等日志統計套件

用戶登錄分析

  • users、who、w命令
    • 查看已登錄的用戶信息,詳細度不同
  • last、lastb命令
    • 查看最近登錄成功/失敗的用戶信息

日志消息的優先級

  • Linux內核定義的事件緊急程度

    • 分為0~7,共八個優先級別
    • 其數值越小,表示對應事件越緊急、越重要

EMERG告急會導致主機系統不可用的情況
ALERT警告必須馬上采取措施解決問題
CRIT嚴重比較嚴重的情況
ERR錯誤運行出現錯誤
WARNING提醒可能會影響系統功能的事件
NOTICE注意不會影響系統,但是值得注意
INFO信息一般信息
DEBUG調試程序或系統調試信息等

使用journalctl工具

  • 提取由systemd-journal服務搜索的日志
    • 主要包括內核/系統日志、服務日志
  • 常見用法:
    • journalctl | grep 關鍵詞
    • journalctl -u 服務名 [-p 優先級]
    • journalctl -n 消息條數

SELinux

SELinux安全機制

SELInux概述

  • Security-Enhanced Linux
    • 美國NSA國家安全局主導開發,一套增強Linux系統安全的強制訪問控制體系
    • 集成到Linux內核(2.6及以上)中運行
    • SELinux體系對用戶、進程、目錄和文件提供了預設的保護策略,以及管理工具

SELinux運行模式的切換

  • SELinux的運行模式
    • enforcing:強制模式
    • permissive:寬松模式
    • disabled:徹底禁用
  • 切換運行模式:
    • 臨時切換:setenforce 1 | 0
    • 查看當前模式:getenforce
    • 固定配置:/etc/selinux/config文件

#查看現在的selinux運行模式
[root@test1 ~]# getenforce 
Enforcing
[root@test1 ~]# setenforce
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]#進行臨時修改
[root@test1 ~]# setenforce 0
[root@test1 ~]# getenforce 
Permissive

那么有人會問:配置文件里面怎么改?

#首先查找配置文件里面的SELINUX
#找到的下面的第四條SELINUX=ecforcing就是配置信息
#要是想要改為寬松模式,只需要把enforcing改為permissive,然后重啟即可
#要是想要改為徹底禁用,只需要把enforcing改為disabled,然后重啟即可
[root@test1 ~]# grep SELINUX /etc/selinux/config 
# SELINUX= can take one of these three values:
# NOTE: Up to RHEL 8 release included, 
SELINUX=disabled would also
SELINUX=enforcing
# SELINUXTYPE= can take one of these three values:
SELINUXTYPE=targeted

系統故障修復

故障排除

忘記root密碼

解決思路

  • 第一步:重啟系統,進入救援模式
    • 開機的時候按e鍵,進入頁面后,將linux開頭的那一行中的ro修改為rw(read only→read wirte)
    • 還是在這一行,在最末尾的地方,添加rd.break
    • 按快捷鍵ctrl + x啟動,會看到switch_root:/#
  • 第二步:切換到此環境
    • switch_root:/# chroot /sysroot
  • 第三步:將管理員root的密碼進行重設
  • 第四步:重設SELinux安全標簽
    • touch /.autorelabel #讓SELinux失憶,或者修改SELinux模式,但是只能采取一種方式
  • 第五步:前后執行reboot完成修復
    • reboot -f #強制重新啟動

系統文件損壞故障

主要問題:開機自動掛載配置文件書寫錯誤

解決思路:引導進入修復模式,然后進行修復

構建FTP服務

FTP介紹

基本信息

  • FTP服務器:數據傳輸
  • FTP協議:文件傳輸協議
  • 實現FTP服務的軟件:vsftpd
  • FTP默認共享數據的主目錄:/var/ftp

安裝軟件vsftpd

[root@test1 ~]# yum install vsftpd

實現FTP服務

檢查軟件安裝情況

[root@test1 ~]# rpm -q vsftpd 
vsftpd-3.0.5-6.el9.x86_64

修改配置文件

修改vsftpd的配置文件,修改設置為開啟無需驗證訪問功能

[root@test1 ~]# grep anonymous_enable= /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
[root@test1 ~]# vim /etc/vsftpd/vsftpd.conf 
[root@test1 ~]# grep anonymous_enable= /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
[root@test1 ~]# 

訪問FTP服務

我們使用另一臺虛擬機test2來訪問test1的FTP服務

但是這里訪問失敗了,這是為什么呢?這里是因為防火墻firewalld存在的緣故,我們把它卸載掉就可以,當然也可以修改firewalld配置來實現。看下一小節我們就能明白為什么

防火墻策略管理

firewalld服務基礎

Linux的防火墻體系

  • 系統服務:firewalld
  • 管理工具(指令):firewalld-cmd、firewalld-config
  • 作用:嚴格過濾

預設安全區域

  • 根據所在的網絡場所區分,預設保護規則集
    • public:僅允許訪問本機的sshd、dhcp(自動獲取ip)、ping等少數幾個服務
    • trusted:允許任何訪問
    • block:阻塞任何來訪請求
    • drop:丟棄任何來訪的數據包
  • 配置規則的位置
    • 運行時:runtime
    • 永久:permanent

防火墻判定原則

1.查看客戶端請求中源IP地址,查看自己所有區域中的規則,哪個區域中有該源IP地址規則,則進入該區域

2.進入默認區域(默認情況下為public)

查看防火墻規則列表

列表查看規則

  • firewalld-cmd - -list-all [- -zone=區域名]
  • firewalld-cmd - -list-all-zones
  • firewalld-cmd - -get-zones
  • firewalld-cmd - -get-services
  • firewalld-cmd - -get-dedault-zone

配置防火墻

指定默認的安全區域

  • 使用命令:firewalld-cmd - -set-defaults-zone=區域名
    • 默認為public,限制比較嚴格
    • 對于開放式環境,建議將默認區域修改為trusted
    • 針對“運行時/永久配置”均有效
[root@test1 ~]# firewall-cmd --get-default-zone 
public
[root@test1 ~]# firewall-cmd --set-default-zone=trusted 
success
[root@test1 ~]# firewall-cmd --get-default-zone 
trusted

書接上文,我們修改了默認安全區域,這下應該可以實現FTP服務了,用test2連接一下test1試一下

[root@test2 ~]# curl <ftp://192.168.99.10>
drwxr-xr-x    2 0        0               6 Nov 06  2024 pub

成功連接上了,這里可以看到一個pub,這就是test1共享的內容,上面我們也講過了,提供FTP服務的默認文件路徑是/var/ftp/,我們在test1中修改,再用test2訪問查看是否會更新

在test1中:

[root@test1 ~]# ls /var/ftp/
pub
[root@test1 ~]# echo 'Hello World!!' > /var/ftp/hello.txt
[root@test1 ~]# cat /var/ftp/hello.txt
Hello World!!

在test2中:

[root@test2 ~]# curl <ftp://192.168.99.10>
-rw-r--r--    1 0        0              14 Sep 03 11:49 hello.txt
drwxr-xr-x    2 0        0               6 Nov 06  2024 pub

我們在test1中創建的hello.txt可以通過FTP服務提供給test2,說明成功

封網段、開服務

  • 若針對“永久配置”,需要添加- -permanent
    • 使用:- -add-source=網段名
    • 使用:- -add-service=服務名

舉例

服務管理

systemd介紹

init程序的作用

  • Linux系統和服務管理器
    • 是內核引導之后加載的第一個初始化進程(PID=1)
    • 負責掌控整個Linux的運行/服務資源組合
  • 傳統的init程序風格
    • system v:順序加載,RHEL5系列采用
    • upstart:事件觸發,RHEL6系列采用

systemd

  • 一個更高效的系統&服務管理器
    • 開機服務并啟動,各系統服務間的精確依賴
    • 服務目錄:/lib/systemd/system/
    • 主要管理工具:systemctl
  • 用戶→systemctl→systemd→服務啟動配置文件→服務程序
  • 服務啟動配置文件目錄:/lib/systemd/system/

管理系統服務

列出服務

  • 列出活動的系統服務
    • systemctl -t service
  • 列出所有的系統服務(包括不活動的)
    • systemctl -t service - -all

啟動/停止/重啟/看狀態

  • systemctl restart 服務名:重啟服務
  • systemctl start 服務名:開啟服務
  • systemctl stop 服務名:停止服務
  • systemctl status 服務名:查看服務當前狀態
  • systemctl enable 服務名:設置服務開機自啟動
  • systemctl disable 服務名:設置服務禁止開機自啟動
  • systemctl is-enabled 服務名:查看服務是否開機自啟動

管理運行級別

切換級別

1.單用戶模式(基本功能的實現,破解Linux密碼)····50個服務

2.多用戶字符界面(不支持網絡)····80個服務

3.多用戶字符界面(支持網絡)服務器默認運行級別····100個服務

4.未定義····0個服務

5.圖形界面····300個服務

6.重啟····0個服務····相當于reboot

#當前直接切換到字符模式
systemctl isolate multi-user.target     #相當于init  3#當前直接切換到圖形模式
systemctl isolate graphical.target      #相當于init  5

設置默認級別

查看每次開機默認進入的模式

[root@test1 ~]# systemctl get-default 
graphical.target

設置永久策略,每次開機自動進入字符模式

[root@test1 ~]# systemctl set-default multi-user.target 
Removed "/etc/systemd/system/default.target".
Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target.
[root@test1 ~]# systemctl get-default 
multi-user.target

這樣就設置成功了,之后我們將一直使用字符模式,一方面為了提高專業能力,一方面減小系統負擔

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/95879.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/95879.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/95879.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

3Ds Max Gamma值完全指南:問題識別與正確設置解析

當渲染圖像與本地圖片相比亮度偏黑或偏白時&#xff0c;很可能是因為Gamma輸入輸出設置不一致。需要注意的是&#xff0c;Gamma問題通常表現為整體亮度偏差&#xff0c;而非大面積曝光或全黑狀況。Gamma設置教程問題一&#xff1a;Gamma校正未開啟如果使用VR幀緩沖窗口渲染但未…

用 Rust + Actix-Web 打造“Hello, WebSocket!”——從握手到回聲,只需 50 行代碼

用 Rust Actix-Web 打造“Hello, WebSocket!”——從握手到回聲&#xff0c;只需 50 行代碼 一、為什么選擇 Rust 寫 WebSocket&#xff1f; 零成本抽象&#xff1a;編譯期確定生命周期&#xff0c;無 GC 抖動&#xff0c;延遲低至微秒級actix-web&#xff1a;Tokio 生態最成熟…

基于Cursor的 STM32工程搭建 (編譯、下載、仿真)

嵌入式學習交流Q群 679912988 簡介 本工程使用GCC編譯器、MinGW、CMake構建工具和OpenOCD調試工具。實現了替代KEIL, IAR等在某些情況下不方便使用的情況。實現了編譯、調試、下載、燒錄一體。搭配Cursor的Tab補全功能&#xff0c;編碼效率大大提升。 工具下載及安裝 Cursor…

數據量太大處理不了?Hadoop+Spark輕松解決海洋氣象大數據分析難題

&#x1f34a;作者&#xff1a;計算機畢設匠心工作室 &#x1f34a;簡介&#xff1a;畢業后就一直專業從事計算機軟件程序開發&#xff0c;至今也有8年工作經驗。擅長Java、Python、微信小程序、安卓、大數據、PHP、.NET|C#、Golang等。 擅長&#xff1a;按照需求定制化開發項目…

Day34 UDP套接字編程 可靠文件傳輸與實時雙向聊天系統

day34 UDP套接字編程 可靠文件傳輸與實時雙向聊天系統 UDP文件傳輸 實現客戶端向服務器傳輸文件&#xff08;如圖片&#xff09;的功能&#xff0c;確保傳輸后文件內容完全一致且可正常打開。傳輸過程采用簡單的確認機制防止數據包丟失&#xff0c;傳輸完成后雙方程序自動退出。…

策略模式-不同的鴨子的案例

介紹了策略模式在C#中的應用&#xff0c;以一個鴨子的例子來說明。首先定義了鴨子類以及鴨子的行為&#xff08;方法&#xff09;&#xff0c;然后通過繼承和實現接口的方式來定義不同種類的鴨子的特性。介紹了策略模式的概念&#xff0c;將相同的算法封裝在不同的類中&#xf…

C++語言編程規范-初始化和類型轉換

01 C語言編程規范-常量 02 初始化和類型轉換 聲明、定義與初始化 03 禁止用 memcpy、memset 初始化非 POD 對象 說明&#xff1a;POD 全稱是“Plain Old Data”&#xff0c;是 C 98 標準(ISO/IEC 14882, first edition, 1998-09-01)中引入的一個概念&#xff0c; PO…

從零構建一款開源在線客服系統:我的Go語言實戰之旅

了解更多&#xff0c;搜索 "程序員老狼"用代碼連接世界&#xff0c;讓溝通無界限緣起&#xff1a;為什么選擇開發客服系統&#xff1f;在數字化浪潮席卷全球的今天&#xff0c;企業與客戶之間的溝通方式正在發生深刻變革。傳統的電話和郵件支持已無法滿足即時互動的需…

unsloth筆記:基本介紹

更快的速度、更省的內存訓練、運行、評估大模型 1 支持的模型 All Our Models | Unsloth Documentation 1.1 Dynamic GGUF/instruct 4-bit llama.cpp使用的新模型格式&#xff0c;專為高效、本地推理設計注&#xff1a;GGUF無法微調 只保留推理所需的內容&#xff0c;如量化…

博眾測控 | 一文看懂菊水電源產品在半導體測試中的應用

01 半導體在各行業上的應用半導體作為現代工業體系的“核心神經”&#xff0c;其性能參數與應用場景深度綁定&#xff0c;不同行業因核心設備的功能需求差異&#xff0c;對半導體的電流、電壓承載能力及類型選擇有著明確且嚴格的要求&#xff0c;具體應用細節如下&#xff1a;1…

【STM32】貪吃蛇 [階段 8] 嵌入式游戲引擎通用框架設計

這篇博客是 承接&#xff1a;【項目思維】貪吃蛇&#xff08;嵌入式進階方向&#xff09;中 嵌入式游戲引擎雛形&#xff08;終極進階&#xff09;&#xff0c; 是我們此前從 “寫一個小游戲”提升到“構建可復用游戲框架” 的飛躍階段。我們以“貪吃蛇游戲”為例&#xff0c;抽…

Vue圖標按鈕好用的樣式

圖標按鈕示例一 <template><div class"icon-button-group"><button class"icon-btn icon-btn--default"><i class"el-icon-moon"></i></button><button class"icon-btn icon-btn--primary"&g…

Nginx 實戰系列(一)—— Web 核心概念、HTTP/HTTPS協議 與 Nginx 安裝

文章目錄前言一、Web 概念1.1 Web 的基本概念1.1.1 Web的特點1.2 B/S 架構模型1.3 Web 請求與響應過程&#xff08;重點&#xff09;1.4 靜態資源與動態資源1.5 Web 的發展階段1.6 案例&#xff1a;搭建最小 Web 服務1.6.1 目標1.6.2 搭建步驟1.7 小結二、HTTP 與 HTTPS 協議2.…

一種用geoserver發布復雜樣式矢量服務的方法

最近因為系統需要在國產系統中部署&#xff0c;遇見了國產系統不支持ArcGIS的尷尬局面&#xff0c;好在geoserver還是可以支持的&#xff0c;遂用geoserver解決服務問題。 在發布過程中&#xff0c;遇到比較難受的點就是矢量數據的樣式配圖&#xff0c;在我用QGIS配好導出sld后…

為什么神經網絡網絡算法比機器學習模型算法更加強大?

神經網絡&#xff08;尤其是深度神經網絡&#xff09;相比傳統機器學習模型&#xff08;如線性回歸、決策樹、支持向量機等&#xff09;的“強大”主要體現在其更強的表達能力、自適應特征學習能力以及對復雜模式的建模能力。但這種“強大”并非絕對&#xff0c;而是有特定條件…

中國移動浪潮云電腦CD1000-系統全分區備份包-可瑞芯微工具刷機-可救磚

中國移動浪潮云電腦CD1000-系統全分區備份包-可瑞芯微工具刷機-可救磚 開啟ADB教程&#xff1a; 可查看&#xff1a;浪潮CD1000-移動云電腦-RK3528芯片-232G-安卓9-開啟ADB ROOT破解教程 可輕松打開了wifi adb和USB調試。 往期詳細內容-文章&#xff1a;浪潮CD1000-移動云電腦…

C++兩個字符串的結合

這段代碼實現字符串拼接功能。用戶輸入兩個字符串a和b后&#xff0c;使用append()方法將b追加到a后面&#xff0c;然后輸出拼接后的結果。代碼簡潔但存在改進空間&#xff1a;1. 缺少輸入驗證 2. 直接修改原字符串a可能不符合某些場景需求 3. 可考慮更高效的拼接方式。適合基礎…

UE4 Rider調試時添加自定義命令行參數

1、打開 Rider 右上角&#xff0c;針對你的項目&#xff08;例如叫做“Mini”&#xff09;打開 Edit 2、輸入自定義的參數&#xff0c;如下圖的例子是輸入 -dx12 -norhithread &#xff0c;然后Apply并OK。3、開始調試&#xff08;蟲子按鈕&#xff09;

混合架構大型語言模型(Jamba)

Jamba是由AI21 Labs開發的混合架構大型語言模型&#xff08;LLM&#xff09;&#xff0c;結合了Transformer的語義理解能力和Mamba結構化狀態空間模型&#xff08;SSM&#xff09;的高效性&#xff0c;旨在解決長文本處理中的計算瓶頸。 一、技術特點 1.混合架構設計 Jamba采用…

2025 年高教社杯全國大學生數學建模競賽C 題 NIPT 的時點選擇與胎兒的異常判定詳解(一)

基于胎兒Y染色體濃度的孕周與BMI建模分析摘要本文利用某競賽提供的胎兒Y染色體濃度數據&#xff0c;建立了以孕周和孕婦BMI為自變量的多項式回歸模型&#xff0c;探討了其對Y染色體濃度的影響。通過數據清洗與篩選&#xff0c;共獲得1082條有效男胎樣本。結果顯示&#xff1a;Y…