linux基礎

乐茵發表於2024-11-15

linux

openssl

openssl passwd -1 123

openssl是一個開源的加密工具包,提供了各種加密、解密、簽名、驗證等功能。

password表示這個命令用於處理密碼相關的操作。

-1引數指定使用MD5加密演算法對密碼“123”進行加密處理。MD5是一種常用的雜湊演算法,它將任意長度的輸入資料轉換為固定長度的輸出(通常是128位的雜湊值)。使用這個命令可以將“123”生成為MD5加密後的密文。

openssl passwd -5 123

同樣,openssl是加密工具包。

password用於密碼處理。

-5參數列示使用SHA-256雜湊演算法對密碼“123”進行雜湊加密處理。SHA-256是一種更安全的雜湊演算法,它生成的雜湊值長度為256位。每次對相同的密碼進行SHA-256加密時,由於加密過程中通常會引入隨機因素(如鹽值等),所以每次生成的密文都是不一樣的,這增加了密碼的安全性,即使攻擊者獲得了密文,也很難透過逆向計算得到原始密碼。

檔案管理

- 建立空檔案:touch new file

- 刪除檔案:rm newfile

可以看到剛才的檔案已經消失了

- 新建目錄:mkdir newdir

- 刪除空目錄:rmdir newdir

- 重新命名檔案:mv file.txt new.txt

- 移動檔案:mv new.txt newdir

- 複製檔案:cp newdir/new.txt file.txt

在Linux系統中,連結分為兩種:軟連結(符號連結)和硬連結

軟連結(符號連結)

軟連結(Symbolic Link)是一個特殊型別的檔案,它包含了指向另一個檔案或目錄的路徑。軟連結可以跨檔案系統,並且可以連結檔案和目錄。軟連結的建立和使用如下:

建立軟連結:

ln -s <目標檔案或目錄> <連結名稱>

例如,建立一個指向/etc/passwd檔案的軟連結:

ln -s newdir/new.txt new_link

使用軟連結:

cat new_link

刪除軟連結:

rm new_link

硬連結

硬連結(Hard Link)是一個指向檔案內容的指標,它允許一個檔案擁有多個有效的檔名。硬連結不能跨檔案系統,也不能連結目錄。硬連結的建立和使用如下:

建立硬連結:

ln <目標檔案> <連結名稱>

例如,建立一個指向/etc/passwd檔案的硬連結:

ln -s newdir/new.txt new_hard_link

使用硬連結:

cat passwd_hard_link

刪除硬連結:

rm passwd_hard_link

注意:當刪除原檔案時,硬連結仍然有效,因為它們指向相同的檔案內容。只有當刪除最後一個硬連結時,檔案內容才會被刪除。

總結

  • 軟連結是包含目標路徑的特殊檔案,可以跨檔案系統,可以連結檔案和目錄。
  • 硬連結是指向檔案內容的指標,不能跨檔案系統,不能連結目錄。
  • 刪除原檔案時,軟連結失效,硬連結仍然有效。
  • 只有刪除最後一個硬連結時,檔案內容才會被刪除。

搜尋檔案

以下是which命令的基本語法:

which [options] <command>

例如,如果您想找到ls命令的路徑,可以輸入以下命令:

which dir

輸出可能類似於: /usr/bin/dir

這表示dir命令位於/usr/bin/目錄下。

which命令的一些常用選項包括:

• -a:顯示所有匹配的路徑,而不僅僅是第一個匹配項。

• -n:指定輸出的檔名長度。

• -p:與-a選項一起使用時,同時顯示PATH環境變數中的目錄。

例如,要查詢並顯示所有與python命令匹配的路徑,可以使用以下命令:

which -a python

需要注意的是,which命令只搜尋PATH環境變數中定義的目錄。如果您需要查詢系統中所有可用的命令,可以使用whereis命令或find命令。 以下是echo命令的基本用法:

  1. 輸出文字:

echo "Hello, World"

這將在終端顯示 "Hello, World"。

  1. 輸出變數的值:

message="Hello, World"

echo $message

這將輸出變數message的值,即 "Hello, World"

  1. 輸出帶有特殊字元的文字:

如果要輸出包含特殊字元(如引號、反斜槓等)的文字,可以使用反斜槓(\)進行轉義。

echo "He said, \"Hello, World\""

這將輸出 He said, "Hello, World"

  1. 使用-e選項解釋跳脫字元:

預設情況下,echo命令不會解釋跳脫字元。要啟用跳脫字元的解釋,可以使用-e選項。

echo -e "Line 1\nLine 2"

這將輸出:

Line 1
Line 2

其中,\n表示換行符。

  1. 使用-n選項禁止自動換行:

預設情況下,echo命令在輸出文字後會自動新增換行符。要禁止自動換行,可以使用-n選項。

echo -n "Hello, "
echo "World"

這將輸出 Hello, World,而不是在"Hello, "後換行。

echo命令可以用於顯示環境變數PATH的值

echo $PATH

這將輸出一個由冒號(:)分隔的目錄列表,這些目錄是系統在查詢可執行檔案時會搜尋的位置。例如,輸出可能類似於:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

這表示系統會按照上述順序在這些目錄中查詢可執行檔案。

如果您想要檢視PATH環境變數的完整值(包括空格和特殊字元),可以使用雙引號:

echo "$PATH"

這將確保輸出中的空格和特殊字元被正確處理。

locate

locate命令是一個用於快速查詢檔案的工具,它基於一個預先構建的資料庫(通常名為local.db)來搜尋檔案。

以下是locate命令的基本用法:

  1. 查詢檔案:
locate <filename>

例如,要查詢名為example.txt的檔案,可以輸入以下命令:

locate example.txt

這將在local.db資料庫中搜尋與example.txt匹配的所有檔案,並顯示它們的完整路徑。

  1. 查詢包含特定文字的檔案:
locate -i *<text>*

例如,要查詢包含文字hello的所有檔案,可以輸入以下命令:

locate -i *hello*

-i選項表示忽略大小寫。

需要注意的是,locate命令依賴於預先構建的資料庫。在Kali Linux中,這個資料庫通常由updatedb命令定期更新。如果local.db資料庫沒有及時更新,locate命令可能無法找到最近建立或移動的檔案。為了確保locate命令能夠找到最新的檔案,您可以手動執行updatedb命令來更新資料庫:

sudo updatedb

這將更新local.db資料庫,使locate命令能夠找到最新的檔案。

find

“find” 表示在使用者的主目錄(“~” 代表主目錄)下進行查詢。

“-mtime 2” 表示查詢在兩天內被修改過的檔案。

“-ls” 用於以長列表形式顯示找到的檔案資訊。

“|” 是管道符號,將前一個命令的輸出作為後一個命令的輸入。

“sort -k9 -k10” 是按照第九列和第十列的內容對檔案資訊進行排序。

“more” 用於分頁顯示結果,方便檢視。

find  -type f -iname '*.sh' -mmin -30 -ls

“find” 在當前目錄下進行查詢。

“-iname '.sh’” 查詢檔名以 “sh” 結尾的檔案,注意這裡的空格可能會導致不準確匹配,一般用萬用字元應該緊貼在前面的字元後面,比如 “sh”。

“-mmin -30” 表示查詢在 30 分鐘內被修改過的檔案。

“-ls” 以長列表形式顯示找到的檔案資訊。

find -name '*svn' -exec rm -rf {} ;

“find” 在當前目錄下查詢。

“-name 'svn’” 查詢名為 “svn” 的檔案或目錄。

“-exec rm -rf {} ;” 表示對找到的每個結果執行 “rm -rf” 命令,即刪除找到的檔案或目錄。

find / -user root -type f -perm -o=w -name '*sh' 2>/dev/null

“find /” 在整個檔案系統(根目錄 “/”)下進行查詢。

“-user root” 表示查詢所有者為 “root” 使用者的檔案。

“-type f” 表示查詢型別為普通檔案。

“-perm -o=w” 表示查詢其他使用者有寫許可權的檔案。

“-name '*.sh’” 查詢檔名以 “sh” 結尾的檔案。

“2>/dev/null” 將錯誤輸出重定向到 “/dev/null”,即不顯示錯誤資訊。

使用者賬號資料庫相關檔案

cat /etc/passwd

這是一個重要的系統檔案,儲存了系統中使用者賬號的基本資訊。

每行代表一個使用者,包含了使用者名稱、密碼佔位符、使用者 ID、使用者組 ID、使用者描述資訊、使用者主目錄、使用者預設 shell 等欄位。

cat /etc/shadow:

這個檔案也與使用者賬號相關,主要儲存使用者密碼的加密資訊以及密碼的一些屬性,如密碼最後一次修改時間、密碼最短使用期限、密碼最長使用期限等。

只有具有足夠許可權的使用者(通常是 root)才能讀取這個檔案,以提高密碼的安全性。

組賬號相關命令

cat /etc/group:

檢視使用者賬號資訊的同時,也可以間接瞭解使用者所屬的組資訊,因為其中包含了使用者組 ID。但這並不是專門用於檢視組賬號的最佳方式,通常使用 cat /etc/group 來檢視組賬號資訊。

禁用賬號相關命令

sudo passwd -l username:
  • sudo: 表示以管理員許可權執行命令。

  • passwd: 是用於管理使用者密碼的命令。

  • -l 選項用於鎖定使用者賬號。當執行這個命令後,指定的 username 使用者賬號將被鎖定,無法登入系統。

  chage -E 1990-01-01 kali:
  • chage: 命令用於修改使用者密碼的過期資訊。

  • -E 選項後面跟著一個日期,表示設定使用者賬號的過期時間。在這個例子中,將“kali”使用者賬號的過期時間設定為“1990-01-01”,通常意味著在這個日期之後該賬號將無法使用,除非重新設定過期時間或進行其他管理操作。

passwd -S username:
  • passwd: 命令的另一個用法。

  • -S 選項用於顯示指定使用者賬號的密碼狀態資訊,包括賬號是否被鎖定、密碼是否已設定、密碼最後一次修改時間等。

檔案系統許可權

在 Linux 系統中,一切都是檔案

檢視許可權

ls -la /etc/passwd

更改檔案所有者

在Linux中,檔案和目錄的許可權分為三種型別:讀(Read,簡寫為r)、寫(Write,簡寫為w)和執行(Execute,簡寫為x)。

每個檔案和目錄都有三個許可權組:

  1. 使用者(User,簡寫為u):擁有者(建立者)的許可權。
  2. 組(Group,簡寫為g):擁有者所在組的成員的許可權。
  3. 其他(Other,簡寫為o):除擁有者和組內成員之外的其他使用者的許可權。

許可權可以用數字表示,每個許可權對應一個數字:

  • 讀(r):4
  • 寫(w):2
  • 執行(x):1
  • 無許可權:0

要設定檔案或目錄的許可權,可以使用chmod命令。有兩種表示許可權的方法:符號表示法和數字表示法。

符號表示法

使用符號表示法時,您可以使用以下語法:

chmod [ugoa][+-=][rwx] <file_or_directory>
  • [ugoa]:指定許可權組(使用者、組、其他)。
  • [+-=]:指定操作(新增、刪除、設定)。
  • [rwx]:指定許可權(讀、寫、執行)。

例如,要給檔案所有者新增執行許可權,可以使用以下命令:

chmod u+x <file>

數字表示法

使用數字表示法時,您需要為每個許可權組分配一個數字,然後將這三個數字組合在一起。例如,要設定檔案許可權為rwxr-xr--(即擁有者具有讀、寫和執行許可權,組內成員具有讀和執行許可權,其他使用者具有隻讀許可權),可以使用以下命令:

chmod 754 <file>

這裡,數字7、5和4分別表示三個許可權組的許可權:

  • 使用者(u):rwx(4 + 2 + 1)= 7
  • 組(g):r-x(4 + 0 + 1)= 5
  • 其他(o):r--(4 + 0 + 0)= 4

總之,Linux中的數字許可權允許您使用三位數字來表示檔案或目錄的許可權,每位數字對應一個許可權組(使用者、組、其他),每個數字由讀、寫和執行許可權的數值組成。

在Kali Linux(以及大多數Linux發行版)中,數字許可權用於設定檔案和目錄的訪問許可權。

Kali Linux中常用的數字許可權:

  1. 只讀許可權(444/644):擁有者、組和其他使用者都只有讀許可權。

    • 檔案:chmod 644 <file>
    • 目錄:chmod 755 <directory>
  2. 可讀寫許可權(666/664):擁有者和組有讀寫許可權,其他使用者只有讀許可權。

    • 檔案:chmod 664 <file>
    • 目錄:chmod 775 <directory>
  3. 可讀寫執行許可權(777/775):擁有者、組和其他使用者都有讀、寫和執行許可權。

    • 檔案:chmod 775 <file>
    • 目錄:chmod 777 <directory>
  4. 只讀執行許可權(555/755):擁有者、組和其他使用者都有讀和執行許可權,但只有擁有者有寫許可權。

    • 檔案:chmod 644 <file>
    • 目錄:chmod 755 <directory>
  5. 無許可權(000):擁有者、組和其他使用者都沒有任何許可權。

    • 檔案:chmod 000 <file>
    • 目錄:chmod 000 <directory>

一、Linux 系統中一切都是檔案

在 Linux 系統中,幾乎所有的資源都被抽象為檔案,包括硬體裝置(如硬碟、網路卡等)、程序間通訊、網路連線等。這種設計理念使得對各種資源的管理可以透過統一的檔案操作方式來進行,大大簡化了系統的架構和管理。

二、檢視許可權

ls 是列出目錄內容的命令。

-l 選項以長格式顯示檔案資訊,包括檔案的許可權、所有者、所屬組、檔案大小、修改時間等詳細資訊。

-a 選項顯示包括隱藏檔案在內的所有檔案。

/etc/passwd是要檢視的檔案路徑,這個檔案儲存了系統使用者賬號的基本資訊。透過這個命令可以看到 /etc/passwd檔案的許可權設定、所有者、所屬組等資訊。

三、更改檔案所有者

chown root file:

chown 是改變檔案所有者的命令。

root 是新的所有者使用者名稱,這裡表示將檔案的所有者改為“root”使用者。

file 是要更改所有者的檔名稱。執行這個命令後,檔案的所有者將變為“root”使用者。

四、修改檔案許可權

sudo chmod u=rwx, g+rw, o-r file:
  • sudo表示以管理員許可權執行命令。
  • chmod是改變檔案許可權的命令。
  • u=rwx表示檔案所有者(user)具有讀(r)、寫(w)、執行(x)許可權。
  • g+rw表示檔案所屬組(group)增加讀(r)和寫(w)許可權。
  • o-r表示其他使用者(other)去除讀(r)許可權。
  • file是要修改許可權的檔名稱。
sudo chmod u+x, g+w, o-r file:
  • 同樣以管理員許可權執行修改檔案許可權的操作。
  • u+x表示給檔案所有者增加執行許可權。
  • g+w表示給檔案所屬組增加寫許可權。
  • o-r表示去除其他使用者的讀許可權。
  • file是目標檔案。
chmod 400 <file>:
  • chmod命令直接以數字方式設定檔案許可權。
  • 400是許可權的數字表示,其中第一位數字“4”表示檔案所有者的許可權,這裡代表讀許可權(r),因為讀許可權對應的數字是4;後兩位數字“00”分別表示檔案所屬組和其他使用者沒有任何許可權。
  • <file>是要設定許可權的檔案。 以下是提取的文章內容:

系統日誌

ls -l /var/log
  • ls 是列出目錄內容的命令。
  • -l 選項以長格式顯示檔案和目錄的詳細資訊,包括許可權、所有者、所屬組、檔案大小、修改時間等。
  • /var/log 是系統日誌檔案所在的目錄。執行這個命令可以檢視該目錄下的日誌檔案列表及相關資訊。

認證資訊日誌

sudo tail -3 /var/log/auth.log
  • sudo 表示以管理員許可權執行命令。
  • tail 命令用於檢視檔案的末尾部分。
  • -3 表示顯示檔案的最後 3 行內容。 /var/log/auth.log 是一個在 Linux 系統(特別是 Debian 及其衍生發行版,如 Ubuntu)中常見的日誌檔案,用於記錄與系統認證相關的事件。

以下是一些可能記錄在 /var/log/auth.log 檔案中的事件型別:

  1. 使用者登入和登出

    • 成功登入
    • 失敗登入嘗試(例如,錯誤的密碼)
    • 使用者登出
  2. 遠端認證

    • SSH 登入和登出
    • 使用其他遠端認證協議(如 FTP、SMTP 等)的登入和登出
  3. 系統服務認證

    • 系統服務啟動和停止時的認證事件
    • 使用 PAM(Pluggable Authentication Modules)進行的服務認證
  4. 密碼更改和其他使用者管理操作

    • 使用者密碼更改
    • 使用者賬戶建立和刪除
    • 使用者許可權更改
  5. 認證警告和錯誤

    • 多次失敗的登入嘗試
    • 認證模組錯誤
    • 其他與認證相關的警告和錯誤

檢視和分析 /var/log/auth.log 檔案

您可以使用文字編輯器或命令列工具(如 catlessgrep 等)檢視和分析 /var/log/auth.log 檔案。例如:

sudo less /var/log/auth.log

或者,如果您只想檢視包含特定關鍵字的日誌條目(例如,SSH 登入失敗),可以使用 grep 命令:

sudo grep "Failed password for invalid user" /var/log/auth.log

注意事項

  • /var/log/auth.log 檔案通常只包含與認證相關的事件,其他型別的系統日誌(如系統訊息、應用程式日誌等)會記錄在其他日誌檔案中(如 /var/log/syslog/var/log/messages)。

  • 由於 /var/log/auth.log 檔案可能包含敏感資訊(如使用者名稱和密碼),因此請確保只有授權使用者可以訪問該檔案,並定期備份該檔案以防止資料丟失。

總之,/var/log/auth.log 是一個重要的系統日誌檔案,用於記錄與系統認證相關的事件。透過檢視和分析該檔案,您可以瞭解系統的登入活動、認證失敗以及其他與認證相關的事件。

二進位制日誌

who /var/log/wtmp | tail -5
  • who 命令用於顯示當前登入的使用者資訊。
  • /var/log/wtmp 是一個二進位制日誌檔案,記錄了系統的登入和登出資訊。
  • | 是管道符號,將前一個命令的輸出作為後一個命令的輸入。
  • tail -5 表示顯示最後 5 行內容。執行這個命令可以檢視最近的五次登入或登出記錄。

dmesg

  • dmesg 這個命令用於顯示核心環形緩衝區(kernel ring buffer)中的資訊,包括系統啟動時的硬體檢測資訊、核心模組載入資訊、裝置驅動的初始化資訊等。它可以幫助使用者瞭解系統的硬體狀態和核心的執行情況。

systemd 日誌相關命令

systemd是一個系統和服務管理器,用於啟動、停止和管理系統服務和守護程序

以下是關於Kali Linux中systemd的一些基本資訊和常用命令:

基本資訊

• systemd是Linux系統中常用的初始化系統和服務管理器,取代了傳統的SysV init系統。

• systemd旨在提高啟動速度、最佳化資源使用並提供更好的並行性。

• Kali Linux預設使用systemd作為其初始化系統和服務管理器。

常用命令

  1. 檢視系統狀態:
systemctl status

這將顯示系統的整體狀態,包括已啟動的服務和執行級別。

  1. 啟動、停止和重啟服務:
sudo systemctl start <service_name>
sudo systemctl stop <service_name>
sudo systemctl restart <service_name>

例如,要啟動、停止和重啟ssh服務,可以使用以下命令:

sudo systemctl start ssh
sudo systemctl stop ssh
sudo systemctl restart ssh
  1. 啟用和禁用服務:
sudo systemctl enable <service_name>
sudo systemctl disable <service_name>

啟用服務會在系統啟動時自動啟動該服務,禁用服務則不會在系統啟動時啟動該服務。 例如,要啟用和禁用ssh服務,可以使用以下命令:

sudo systemctl enable ssh
sudo systemctl disable ssh
  1. 檢視服務狀態:
systemctl status <service_name>

例如,要檢視ssh服務的狀態,可以使用以下命令:

systemctl status ssh
  1. 檢視所有服務的狀態:
systemctl list-units --type=service

這將顯示系統中所有服務的狀態。

journalctl

  • 這是一個用於檢視和管理 systemd 日誌的命令。systemd 是 Linux 系統的初始化系統和服務管理器,它會記錄系統和服務的啟動、執行和錯誤資訊等日誌。

  • journalctl 可以根據不同的引數來篩選、檢視特定時間段、特定服務或特定優先順序的日誌記錄。

1. 建立掛載點目錄(如果尚未建立)

首先,確保掛載點目錄(在本例中為/mnt/usb)已經存在。如果不存在,請使用mkdir命令建立該目錄:

sudo mkdir -p /mnt/usb

-p選項表示如果父目錄不存在,則一併建立。

2. 掛載裝置

使用mount命令將/dev/sdb1裝置掛載到/mnt/usb目錄:

sudo mount /dev/sdb1 /mnt/usb

現在,/dev/sdb1裝置的內容已經掛載到/mnt/usb目錄,您可以透過訪問/mnt/usb目錄來訪問裝置上的檔案。

3. 解除安裝裝置

當您不再需要掛載的裝置時,可以使用umount命令將其解除安裝:

sudo umount /mnt/usb

或者,您也可以使用裝置名來解除安裝裝置:

sudo umount /dev/sdb1

注意事項

  • 在掛載裝置之前,請確保您具有足夠的許可權。通常需要使用sudo來執行掛載和解除安裝操作。
  • 在解除安裝裝置之前,請確保沒有正在使用該裝置的程序。否則,解除安裝操作可能會失敗,並顯示“裝置正忙”的錯誤訊息。
一、記憶體使用量
free -m:

free命令用於顯示系統記憶體的使用情況。

-m選項表示以兆位元組(MB)為單位顯示記憶體資訊。執行這個命令後,會顯示系統的總記憶體、已使用記憶體、可用記憶體、緩衝記憶體和快取記憶體等資訊,幫助使用者瞭解系統當前的記憶體使用狀態。

二、磁碟使用量

df -hT:

df命令用於顯示磁碟空間使用情況。

-h選項表示以人類可讀的格式(如KB、MB、GB等)顯示磁碟空間大小。

-T選項顯示檔案系統型別。執行這個命令可以檢視各個磁碟分割槽的總大小、已使用空間、可用空間以及檔案系統型別等資訊。

三、檔案或目錄大小

sudo du ./* -hsc:

sudo表示以管理員許可權執行命令。

du命令用於統計檔案或目錄的磁碟使用空間。

./*表示當前目錄下的所有檔案和目錄。

-h選項以人類可讀的格式顯示大小。

-s選項表示彙總顯示每個引數的總大小。

-c選項表示在最後顯示總計。執行這個命令可以檢視當前目錄下每個檔案和目錄的大小,並在最後顯示總計大小。

四、檢視硬碟分割槽

sudo fdisk -l:

sudo以管理員許可權執行。

fdisk是一個磁碟分割槽工具。

-l選項表示列出系統中的所有磁碟分割槽資訊,包括磁碟的大小、分割槽型別、分割槽編號、起始和結束扇區等。這個命令可以幫助使用者瞭解系統的硬碟分割槽情況。

五、掛載分割槽

sudo mount /dev/sdb1 /mnt/usb:

sudo以管理員許可權執行。

mount命令用於將一個檔案系統掛載到指定的目錄。

/dev/sdb1是要掛載的磁碟分割槽裝置路徑。

/mnt/usb是掛載點,即要將分割槽掛載到的目錄。執行這個命令後,系統可以訪問該分割槽中的檔案和目錄,就像訪問本地檔案系統中的其他目錄一樣。

基本網路工具

ifconfig:

  • 是一個用於配置和顯示網路介面資訊的命令列工具。
  • 它可以顯示網路介面的 IP 地址、子網掩碼、MAC 地址等資訊,還可以用於啟動、停止或配置網路介面。

ip addr:

  • 也是用於檢視和管理網路介面的命令。
  • 它提供了比 ifconfig 更詳細和靈活的網路介面資訊顯示,包括介面的狀態、IP 地址、子網掩碼、廣播地址等。

sudo ifdown eth0:

  • sudo 表示以管理員許可權執行命令。
  • ifdown 用於關閉指定的網路介面。
  • eth0 是網路介面名稱,這裡表示關閉名為“eth0”的網路介面。

sudo ifup eth0:

  • 同樣以管理員許可權執行。
  • ifup 用於啟動指定的網路介面。
  • eth0 表示啟動名為“eth0”的網路介面。

網路配置

/etc/network/interfaces:

  • 這是一個系統檔案,用於配置網路介面的靜態 IP 地址、子網掩碼、閘道器等資訊。
  • 在一些 Linux 發行版中,透過編輯這個檔案可以實現網路介面的手動配置。

NetworkManager:

  • 是一個動態網路控制和配置守護程序。
  • 它可以自動管理網路連線,包括有線網路、無線網路和 VPN 連線等。
  • NetworkManager 提供了圖形介面和命令列工具來配置和管理網路,使得網路配置更加方便和靈活。
  • 它可以自動檢測網路變化,並根據配置自動連線到可用的網路。

一、網路連線狀態檢視工具

  • netstat -natup:
  • netstat是一個用於顯示網路連線、路由表、介面統計等資訊的命令。

  • -n選項表示以數字形式顯示地址和埠號,避免進行域名解析。

  • -a選項顯示所有的連線和監聽埠。

  • -t選項顯示TCP連線。

  • -u選項顯示UDP連線。

  • -p選項顯示與連線相關的程序ID和程式名稱。

  • 執行這個命令可以檢視系統當前的網路連線狀態,包括連線的協議、本地地址和埠、遠端地址和埠等資訊。

  • ss -natup:

  • ss是另一個用於顯示網路套接字狀態的工具,它比netstat更快速和高效。
  • 選項的含義與netstat中的類似,用於顯示TCP和UDP連線的狀態、地址和埠資訊,以及相關的程序資訊。

二、二層地址檢視工具

  • arp -en:
  • arp是地址解析協議(Address Resolution Protocol)的工具。
  • -e選項以詳細格式顯示ARP快取表。
  • -n選項以數字形式顯示IP地址,避免進行域名解析。
  • 執行這個命令可以檢視系統的ARP快取表,其中包含了IP地址和對應的MAC地址對映關係,用於在區域網中進行二層地址解析。

三、路由資訊相關工具

  • route:
  • 用於顯示和管理系統的路由表。

  • 可以檢視系統當前的路由資訊,包括目標網路、閘道器、子網掩碼等。還可以用於新增、刪除或修改路由條目。

  • ip route:

  • 是ip命令的一部分,用於管理系統的路由表。
  • 它提供了更強大和靈活的路由管理功能,可以進行更復雜的路由配置操作。
  • sudo ip route add 10.13.37.0/24 dev eth1:
- sudo表示以管理員許可權執行命令。
- ip route add用於新增一條路由條目。
- 10.13.37.0/24是目標網路地址和子網掩碼。
- dev eth1表示透過名為“eth1”的網路介面到達目標網路。
  • 執行這個命令可以向系統的路由表中新增一條路由,指定如何到達特定的網路。

四、路由跟蹤工具

traceroute offensive-security.com:

traceroute是一個用於跟蹤資料包從本地主機到目標主機所經過的路由路徑的工具。

offensive-security.com是目標主機的域名或IP地址。執行這個命令會逐跳顯示資料包經過的路由器的IP地址和響應時間,幫助使用者瞭解網路連線的路徑和可能存在的網路問題。

ssh服務

一、啟動服務

sudo systemctl start ssh:

sudo表示以管理員許可權執行命令。

systemctl是用於管理系統服務的工具。

start ssh是啟動名為“ssh”的服務,也就是啟動SSH伺服器,使得其他裝置可以透過SSH協議連線到這臺主機。

二、連線本地主機

ssh root@localhost:

ssh是Secure Shell的客戶端命令。

root表示要以“root”使用者身份進行登入。

@localhost表示連線到本地主機。執行這個命令可以使用SSH協議以“root”使用者身份登入到本地主機,如果SSH服務已啟動且配置正確,並且使用者有相應的許可權,就可以成功登入並獲得一個遠端命令列會話。

三、配置檔案

/etc/ssh/sshd_config:

這是SSH伺服器的主要配置檔案。

其中包含了各種引數,可以用來配置SSH伺服器的行為,比如埠號、允許的登入使用者、認證方式、訪問控制等。透過編輯這個檔案,可以根據具體需求對SSH伺服器進行定製化配置。

四、客戶端配置 HashKnownHosts yes 是一個 SSH 配置選項,用於在使用 OpenSSH 客戶端時對 known_hosts 檔案中的主機金鑰進行雜湊處理

以下是關於 HashKnownHosts yes 的一些詳細資訊:

作用

  • 當設定為 yes 時,SSH 客戶端會在將主機金鑰新增到 ~/.ssh/known_hosts 檔案時對其進行雜湊處理。
  • 雜湊後的主機金鑰無法直接閱讀,從而提高了安全性。

優點

  1. 保護隱私:雜湊處理後的主機金鑰無法直接閱讀,這有助於保護您的 SSH 連線資訊不被惡意使用者竊取。
  2. 減少拒絕連線的風險:由於雜湊後的主機金鑰無法直接比較,因此即使 known_hosts 檔案中的條目被篡改,SSH 客戶端也不會拒絕連線。

缺點

  1. 無法手動刪除特定主機的條目:由於雜湊處理後的主機金鑰無法直接閱讀,因此您無法手動刪除 known_hosts 檔案中的特定主機條目。
  2. 無法輕鬆遷移:雜湊處理後的主機金鑰在不同系統之間遷移時可能需要進行額外的配置。

配置方法

要將 HashKnownHosts yes 新增到 SSH 配置檔案,請按照以下步驟操作:

  1. 使用文字編輯器開啟 SSH 配置檔案(通常位於 ~/.ssh/config):
nano ~/.ssh/config
  1. 在檔案末尾新增以下行:
HashKnownHosts yes
  1. 儲存並關閉檔案。

現在,當您使用 OpenSSH 客戶端連線到遠端主機時,known_hosts 檔案中的主機金鑰將自動進行雜湊處理。

總之,HashKnownHosts yes 是一個 SSH 配置選項,用於在使用 OpenSSH 客戶端時對 known_hosts 檔案中的主機金鑰進行雜湊處理,以提高安全性。要啟用此選項,請將其新增到 SSH 配置檔案中。

遠端複製

scp root@1.1.1.1:/home/kali/bashrc Copiedbashrc:

scp是 Secure Copy 的縮寫,用於在不同主機之間安全地複製檔案。 root@1.1.1.1表示從 IP 地址為 1.1.1.1 的主機上以“root”使用者身份進行操作。

/home/kali/.bashrc是原始檔路徑,即要從遠端主機上覆制的檔案。 Copiedbashrc是目標檔名稱或目標路徑,即將遠端檔案複製到本地後的名稱或存放位置。這個命令會從指定的遠端主機複製 .bashrc 檔案到本地,並命名為 Copiedbashrc

scp passwd -p kali ssh root@127.0.0.1:

這個命令看起來有點不太準確或不太清晰。一般來說,scp 的語法是 scp [原始檔路徑] [目標路徑]。這裡的“passwd -p kali ssh”不太明確具體含義,可能存在錯誤表述。如果是想複製名為“passwd”的檔案到IP 為 127.0.0.1 的本地主機,可以寫成 scp [遠端使用者名稱]@[遠端主機 IP] [遠端檔案路徑] [本地目標路徑]。

二、檢視歷史命令

history

這個命令用於顯示命令歷史記錄,即之前在當前終端會話中執行過的命令列表。可以透過檢視歷史記錄來快速重複執行之前的命令,或者查詢之前執行過的特定命令。 基礎命令重現 cd(切換目錄)

ls(展示所有目錄)

clear(清屏)——不好截圖,不做演示 pwd(顯示你當前所在目錄)

vim(文字編輯器)

touch(建立檔案)

mkdir(新建目錄)

rm(刪除目錄)

cp(複製檔案)

mv(移動檔案)

cat(檢視檔案)

head(檢視頭部內容)

tail(檢視尾部內容)

more(檢視檔案內容並翻頁)

目錄介紹

/bin目錄

在Kali Linux中,/bin 目錄是用於儲存系統中的基本二進位制可執行檔案的目錄。這些二進位制檔案是系統執行所必需的,它們可以在系統的任何位置被執行,因為/bin目錄已經包含在系統的環境變數$PATH中。

以下是/bin目錄中常見的一些檔案和它們的用途:

  • cat: 用於連線檔案並列印到標準輸出裝置。
  • chmod: 用於更改檔案的許可權。
  • cp: 用於複製檔案或目錄。
  • date: 用於顯示或設定系統時間和日期。
  • df: 用於報告檔案系統的磁碟空間使用情況。
  • dmesg: 用於顯示核心環緩衝區的內容。
  • echo: 用於在終端顯示文字。
  • false: 一個總是返回非0退出狀態的命令。
  • hostname: 用於顯示或設定系統的主機名。
  • kill: 用於傳送訊號給程序。
  • less: 用於分頁檢視文字檔案。
  • ln: 用於建立連結檔案。
  • login: 用於登入系統。
  • ls: 用於列出目錄的內容。
  • mkdir: 用於建立新的目錄。
  • mount: 用於掛載檔案系統。
  • mv: 用於移動或重新命名檔案或目錄。
  • ps: 用於顯示當前執行的程序。
  • pwd: 用於顯示當前工作目錄。
  • rm: 用於刪除檔案或目錄。
  • rmdir: 用於刪除空目錄。
  • sh: 用於啟動shell。
  • su: 用於切換使用者。
  • sync: 用於將緩衝區資料寫入磁碟。
  • true: 一個總是返回0退出狀態的命令。
  • umount: 用於解除安裝檔案系統。
  • uname: 用於顯示系統資訊。
  • wc: 用於計算檔案的行數、單詞數和字元數。
  • who: 用於顯示當前登入的使用者資訊。

這些命令對於系統的日常管理和維護至關重要。由於它們是基本命令,因此在系統啟動的早期階段就可以使用,甚至在某些情況下,當其他目錄(如/usr/bin)尚未掛載時也可以使用。

/etc目錄 在Kali Linux(以及大多數類Unix作業系統)中,/etc目錄是用於儲存系統配置檔案的中央倉庫。這個目錄包含了各種應用程式、服務、系統元件等的配置檔案。以下是一些/etc目錄中常見的子目錄和檔案,以及它們的用途:

常見子目錄

  1. /etc/apt: 包含與APT包管理器相關的配置檔案,例如sources.list定義了軟體源列表。

  2. /etc/bash.bashrc: 系統級的Bash shell配置檔案,對所有使用者生效。

  3. /etc/cron*: 包含與cron定時任務相關的配置檔案。

  4. /etc/dpkg: 包含與dpkg包管理器相關的配置檔案。

  5. /etc/environment: 定義系統範圍的環境變數。

  6. /etc/fstab: 定義檔案系統掛載點以及掛載選項。

  7. /etc/group: 包含使用者組資訊。

  8. /etc/hosts: 包含本地DNS查詢表,用於解析主機名到IP地址。

  9. /etc/init.d: 包含系統服務的啟動指令碼(在較新的系統中,這部分功能可能由systemd接管)。

  10. /etc/logrotate.conf: 定義日誌檔案的輪轉策略。

  11. /etc/network/interfaces: 定義網路介面的配置。

  12. /etc/passwd: 包含使用者賬戶資訊。

  13. /etc/shadow: 包含加密的使用者密碼(出於安全原因,此檔案通常只有root使用者可讀)。

  14. /etc/skel: 包含新使用者主目錄的模板檔案。

  15. /etc/ssh: 包含SSH服務的配置檔案。

  16. /etc/systemd: 包含systemd系統和服務管理器的配置檔案(在較新的Kali版本中)。

  17. /etc/timezone: 指定系統的時區。

  18. /etc/updatedb.conf: 定義updatedb命令的配置,該命令用於更新資料庫,以便locate命令能夠快速找到檔案。

常見檔案

  • /etc/issue: 登入前顯示的資訊。
  • /etc/motd: 登入後顯示的訊息(Message Of The Day)。
  • /etc/mtab: 當前已掛載檔案系統的列表。
  • /etc/nsswitch.conf: 定義名稱服務切換(Name Service Switch)的配置,用於控制如何查詢各種型別的資料(如使用者、組、主機名等)。
  • /etc/resolv.conf: 定義DNS解析器的配置,包括DNS伺服器的地址。

注意事項

  • 直接編輯/etc目錄下的檔案需要謹慎,因為錯誤的配置可能導致系統不穩定或無法正常工作。
  • 在修改任何配置檔案之前,最好先備份原始檔案。
  • 許多配置檔案支援語法高亮和自動補全,可以使用文字編輯器(如nano、vim等)進行編輯。

總之,/etc目錄是Kali Linux系統中非常重要的部分,它包含了維持系統正常執行所需的各種配置資訊。

/etc/init.d目錄

  • 用途/etc/init.d目錄包含了系統服務的啟動和停止指令碼。這些指令碼通常遵循SysV init風格,儘管在較新的Kali版本中,systemd可能已經成為主要的初始化系統和服務管理器。

  • 指令碼功能:每個指令碼都可以透過特定的命令來控制相關的服務,例如:

    • service script_name start:啟動服務。
    • service script_name stop:停止服務。
    • service script_name restart:重啟服務。
    • service script_name status:檢查服務的狀態。
  • /etc/rc*.d的關係:雖然/etc/rc.d不存在,但你可能會看到/etc/rc*.d這樣的目錄(例如/etc/rc0.d, /etc/rc1.d, /etc/rc2.d, 等)。這些目錄包含了指向/etc/init.d中指令碼的符號連結,用於控制系統在不同執行級別下的行為。執行級別決定了系統啟動時哪些服務會被啟動。

遷移到systemd

在較新的Kali Linux版本中,systemd已經取代了傳統的SysV init系統。systemd使用自己的服務檔案格式,並儲存在/lib/systemd/system/etc/systemd/system目錄中。如果你正在處理一個使用systemd的系統,你應該查詢這些目錄中的服務檔案,而不是/etc/init.d目錄。

總結

  • 在Kali Linux中,/etc/init.d是用於存放服務啟動指令碼的標準目錄。
  • /etc/rc*.d目錄包含指向/etc/init.d指令碼的符號連結,用於控制不同執行級別下的服務啟動。
  • 較新的Kali版本可能使用systemd作為初始化系統和服務管理器,此時應查詢/lib/systemd/system/etc/systemd/system目錄中的服務檔案。

/home/kali目錄

在Kali Linux中,/home/kali目錄是預設的使用者主目錄,專為安裝Kali Linux時建立的kali使用者所設。以下是關於該目錄的一些詳細資訊:

目錄結構

  • /home/kali:
    • 用途:這是kali使用者的個人工作空間,包含該使用者的所有檔案和設定。
    • 內容:該目錄通常包含以下子目錄和檔案:
      • **Desktop**:存放桌面檔案和快捷方式。
      • **Documents**:存放文件檔案。
      • **Downloads**:存放從網路下載的檔案。
      • **Music**:存放音樂檔案。
      • **Pictures**:存放圖片檔案。
      • **Videos**:存放影片檔案。
      • **.bashrc**:Bash shell的配置檔案,包含使用者特定的shell設定。
      • **.profile**:使用者的shell配置檔案,包含一些基本的使用者環境設定。
      • **.config**:存放應用程式的配置檔案。
      • **.local**:存放本地資料,通常是應用程式建立的檔案。
      • **.ssh**:存放SSH金鑰和其他安全相關檔案(如果已配置)。

使用者主目錄的重要性

  • 個性化設定:使用者可以在其主目錄中自定義設定,包括桌面環境、應用程式配置等。
  • 資料儲存:使用者可以將個人檔案儲存在主目錄中,確保資料的安全性和隔離性。
  • 許可權管理:主目錄的許可權設定確保只有使用者本人和其他具有適當許可權的使用者可以訪問其中的內容。

注意事項

  • 許可權:預設情況下,只有kali使用者和root使用者可以訪問/home/kali目錄。其他使用者需要適當的許可權才能訪問。
  • 備份:由於主目錄包含重要的個人資料和設定,建議定期備份該目錄以防止資料丟失。

總之,/home/kali目錄是Kali Linux中kali使用者的個人工作空間,包含了該使用者的所有檔案和設定。合理管理和使用該目錄可以提高工作效率並確保資料安全。

/lib目錄

在Kali Linux(以及大多數類Unix作業系統)中,/lib目錄是用於儲存共享庫檔案的關鍵目錄之一。共享庫(也稱為動態連結庫)包含可被多個程式同時使用的程式碼和資料,這樣可以節省記憶體並提高效率。以下是關於/lib目錄的一些詳細資訊:

目錄結構

  • /lib:
    • 用途:存放系統核心和基礎系統工具所需的共享庫檔案。
    • 內容:該目錄通常包含以下型別的檔案:
      • .so 檔案:這些是共享物件檔案,包含可在執行時動態連結的程式碼和資料。
      • 核心模組:在某些系統中,/lib目錄也可能包含核心模組,這些模組可以在需要時載入到核心中。

與其他相關目錄的區別

  • **/lib64**:在64位系統上,/lib64目錄用於存放64位的共享庫檔案,而/lib目錄則用於存放32位的共享庫檔案(如果系統同時支援32位和64位應用程式)。
  • **/usr/lib**:這個目錄也包含共享庫檔案,但通常是針對使用者級應用程式的,而不是系統核心工具。
  • **/usr/local/lib**:這個目錄用於存放透過/usr/local安裝的軟體包的共享庫檔案。

重要性

  • 依賴管理:共享庫檔案對於程式的正常執行至關重要,因為許多程式依賴於這些庫來執行其功能。
  • 系統穩定性:正確管理和維護/lib目錄中的檔案對於保持系統的穩定性和安全性非常重要。

注意事項

  • 許可權/lib目錄及其內容通常只有root使用者可寫,以防止意外修改或刪除關鍵檔案。
  • 備份:由於/lib目錄包含重要的系統庫檔案,建議在進行重大系統更改或升級之前備份該目錄。

總之,/lib目錄在Kali Linux中扮演著至關重要的角色,它儲存了系統核心和基礎工具所需的共享庫檔案。合理管理和維護這個目錄對於確保系統的穩定性和功能性至關重要。

/sbin目錄

在Kali Linux(以及大多數類Unix作業系統)中,/sbin目錄是用於儲存系統管理工具和二進位制可執行檔案的目錄。這些工具通常用於系統維護和管理任務,並且通常只應由系統管理員(root使用者)執行。以下是關於/sbin目錄的一些詳細資訊:

目錄結構

  • /sbin:
    • 用途:存放系統管理工具和二進位制可執行檔案,這些工具主要用於系統級別的操作和維護。
    • 內容:該目錄通常包含以下型別的工具和命令:
      • **ifconfig**:用於配置網路介面。
      • **init**:用於啟動和停止系統執行級別。
      • **ip**:用於配置和管理網路介面和路由。
      • **mount**:用於掛載檔案系統。
      • **reboot**:用於重啟系統。
      • **shutdown**:用於關閉系統。
      • **fdisk**:用於磁碟分割槽管理。
      • **fsck**:用於檢查和修復檔案系統錯誤。
      • **mkfs**:用於建立檔案系統。
      • **route**:用於管理網路路由表。
      • **sysctl**:用於配置核心引數。
      • **systemctl**:用於管理系統服務(在較新的系統中,特別是使用systemd的系統)。

與其他相關目錄的區別

  • **/bin**:這個目錄包含基本的使用者命令和工具,這些工具不僅適用於系統管理員,也適用於普通使用者。
  • **/usr/sbin**:這個目錄也包含系統管理工具,但通常是針對更高階或不太常用的工具。
  • **/usr/local/sbin**:這個目錄用於存放透過/usr/local安裝的軟體包的系統管理工具。

重要性

  • 系統維護/sbin目錄中的工具對於系統管理員執行日常維護任務至關重要。
  • 安全性:由於這些工具通常具有較高的許可權,因此只應由root使用者或具有適當許可權的使用者執行,以防止誤操作或惡意使用。

注意事項

  • 許可權/sbin目錄及其內容通常只有root使用者可寫,以防止意外修改或刪除關鍵檔案。
  • 備份:由於/sbin目錄包含重要的系統管理工具,建議在進行重大系統更改或升級之前備份該目錄。

總之,/sbin目錄在Kali Linux中扮演著至關重要的角色,它儲存了系統管理工具和二進位制可執行檔案,這些工具主要用於系統級別的操作和維護。合理管理和維護這個目錄對於確保系統的穩定性和功能性至關重要。

/tmp目錄

在Kali Linux(以及大多數類Unix作業系統)中,/tmp目錄是用於儲存臨時檔案的特殊目錄。以下是關於/tmp目錄的一些詳細資訊:

目錄結構

  • /tmp:
    • 用途:提供一個臨時儲存空間,供程式和使用者儲存臨時檔案。這些檔案通常是短期的,程式執行結束後可以被刪除。
    • 內容:該目錄通常包含各種程式生成的臨時檔案,例如快取檔案、日誌檔案、會話資料等。

特性

  • 臨時性/tmp目錄中的檔案通常在系統重啟或定期清理時被刪除。許多程式在啟動時會清理舊的臨時檔案,以確保有足夠的空間。
  • 許可權/tmp目錄通常具有寬鬆的許可權設定,以便多個使用者和程式可以讀寫該目錄。然而,這也意味著使用者需要注意保護自己的臨時檔案,以防止未經授權的訪問或刪除。

注意事項

  • 安全性:由於/tmp目錄具有寬鬆的許可權設定,惡意程式可能會利用該目錄進行攻擊。因此,建議使用者避免在/tmp目錄中儲存敏感資料。
  • 磁碟空間管理/tmp目錄可能會佔用大量磁碟空間,特別是在長時間執行的系統上。建議定期監控和清理該目錄,以確保有足夠的磁碟空間供其他重要任務使用。
  • 備份:由於/tmp目錄中的檔案通常是臨時的,因此通常不需要備份該目錄。然而,如果某些臨時檔案包含重要資料,建議使用者將其移動到其他安全位置。

總之,/tmp目錄在Kali Linux中扮演著重要的角色,它提供了一個臨時儲存空間,供程式和使用者儲存臨時檔案。合理管理和使用該目錄可以提高系統的效率和安全性。

/root目錄

在Kali Linux(以及大多數類Unix作業系統)中,/root目錄是系統管理員(即root使用者)的主目錄。以下是關於/root目錄的一些詳細資訊:

目錄結構

  • /root:
    • 用途:這是root使用者的個人工作空間,包含該使用者的所有檔案和設定。
    • 內容:該目錄通常包含以下子目錄和檔案:
      • **Desktop**:存放桌面檔案和快捷方式。
      • **Documents**:存放文件檔案。
      • **Downloads**:存放從網路下載的檔案。
      • **Music**:存放音樂檔案。
      • **Pictures**:存放圖片檔案。
      • **Videos**:存放影片檔案。
      • **.bashrc**:Bash shell的配置檔案,包含使用者特定的shell設定。
      • **.profile**:使用者的shell配置檔案,包含一些基本的使用者環境設定。
      • **.config**:存放應用程式的配置檔案。
      • **.local**:存放本地資料,通常是應用程式建立的檔案。
      • **.ssh**:存放SSH金鑰和其他安全相關檔案(如果已配置)。

使用者主目錄的重要性

  • 個性化設定:root使用者可以在其主目錄中自定義設定,包括桌面環境、應用程式配置等。
  • 資料儲存:root使用者可以將個人檔案儲存在主目錄中,確保資料的安全性和隔離性。
  • 許可權管理:主目錄的許可權設定確保只有root使用者本人和其他具有適當許可權的使用者可以訪問其中的內容。

注意事項

  • 許可權:預設情況下,只有root使用者可以訪問/root目錄。其他使用者需要適當的許可權才能訪問。
  • 安全性:由於root使用者擁有系統的最高許可權,/root目錄中的檔案和設定對系統安全至關重要。建議定期審查和更新該目錄中的內容,以確保系統的安全性。
  • 備份:由於/root目錄包含重要的系統管理檔案和個人資料,建議定期備份該目錄以防止資料丟失。

總之,/root目錄在Kali Linux中扮演著至關重要的角色,它儲存了root使用者的個人工作空間和相關設定。合理管理和維護這個目錄對於確保系統的穩定性和安全性至關重要。

/mnt目錄

在Kali Linux(以及大多數類Unix作業系統)中,/mnt目錄是一個標準的掛載點,用於臨時掛載檔案系統。以下是關於/mnt目錄的一些詳細資訊:

目錄結構

  • /mnt:
    • 用途:提供一個標準的掛載點,用於臨時掛載外部檔案系統,如USB驅動器、CD/DVD、網路檔案系統等。
    • 內容:該目錄通常在需要時由系統管理員手動掛載檔案系統,掛載點可以是/mnt目錄下的子目錄,例如/mnt/usb/mnt/cdrom/mnt/network等。

特性

  • 臨時性/mnt目錄中的掛載點是臨時的,通常在系統重啟後不會自動掛載。
  • 靈活性/mnt目錄允許系統管理員根據需要建立任意數量的子目錄作為掛載點。
  • 許可權管理/mnt目錄及其子目錄的許可權設定可以根據需要進行調整,以確保只有合適的使用者和組可以訪問掛載的檔案系統。

注意事項

  • 掛載操作:掛載檔案系統時,需要使用mount命令,並指定正確的裝置名稱和掛載點。例如:

    sudo mount /dev/sdb1 /mnt/usb

    這條命令將/dev/sdb1裝置(假設是一個USB驅動器)掛載到/mnt/usb目錄。

  • 解除安裝操作:在不再需要掛載的檔案系統時,應該使用umount命令解除安裝它。例如:

    sudo umount /mnt/usb

    這條命令將解除安裝/mnt/usb目錄中的檔案系統。

  • 許可權:掛載和解除安裝檔案系統通常需要root許可權,因此建議使用sudo命令執行這些操作。

  • 備份:雖然/mnt目錄本身通常不需要備份,但掛載的檔案系統中的資料可能需要備份,以防止資料丟失。

總之,/mnt目錄在Kali Linux中扮演著重要的角色,它提供了一個標準的掛載點,用於臨時掛載外部檔案系統。合理管理和使用該目錄可以提高系統的靈活性和可用性。

/lost+found目錄

在Kali Linux(以及大多數類Unix作業系統)中,/lost+found目錄是一個特殊的目錄,用於存放檔案系統檢查工具(如fsck)在檢查和修復檔案系統時發現的孤立檔案。以下是關於/lost+found目錄的一些詳細資訊:

目錄結構

  • /lost+found:
    • 用途:存放檔案系統檢查工具在修復過程中發現的孤立檔案。這些檔案可能是由於系統崩潰、非正常關機或其他原因導致的檔案系統損壞而產生的。
    • 內容:該目錄通常包含一些零散的檔案和目錄,這些檔案和目錄沒有明確的歸屬路徑,因此被放置在/lost+found目錄中。

特性

  • 自動建立/lost+found目錄通常在檔案系統建立時自動建立,並且具有特殊的許可權設定,以確保只有root使用者可以寫入該目錄。
  • 臨時性/lost+found目錄中的檔案通常是臨時的,系統管理員需要定期檢查和清理該目錄,以恢復或刪除孤立檔案。

注意事項

  • 檔案恢復:系統管理員可以使用fsck工具檢查和修復檔案系統,並將發現的孤立檔案放置在/lost+found目錄中。使用者可以檢查該目錄中的檔案,嘗試恢復重要的資料。
  • 許可權管理/lost+found目錄通常只有root使用者可寫,以防止未經授權的修改。使用者需要適當的許可權才能讀取和刪除該目錄中的檔案。
  • 備份:雖然/lost+found目錄本身通常不需要備份,但其中的孤立檔案可能包含重要的資料,建議定期檢查和備份該目錄中的檔案。

示例操作

  1. 執行檔案系統檢查

    sudo fsck /dev/sda1

    這條命令將檢查/dev/sda1分割槽上的檔案系統,並將發現的孤立檔案放置在/lost+found目錄中。

  2. 檢視/lost+found目錄中的檔案

    ls /lost+found
  3. 恢復孤立檔案: 如果發現重要的孤立檔案,可以將其移動到合適的位置進行恢復。

總之,/lost+found目錄在Kali Linux中扮演著重要的角色,它提供了一個存放孤立檔案的臨時空間,幫助系統管理員恢復因檔案系統損壞而丟失的資料。合理管理和使用該目錄可以提高系統的可靠性和資料安全性。

/proc目錄

在Kali Linux(以及大多數類Unix作業系統)中,/proc目錄是一個虛擬檔案系統,提供對核心資料結構的訪問。這個目錄並不佔用磁碟空間,而是直接從記憶體中讀取資料。以下是關於/proc目錄的一些詳細資訊:

目錄結構

  • /proc:
    • 用途:提供一個介面,用於訪問核心和系統狀態資訊,以及執行時的核心引數。
    • 內容:該目錄包含許多子目錄和檔案,每個檔案和子目錄都提供特定型別的資訊或控制介面。例如:
      • **/proc/cpuinfo**:包含關於CPU的資訊。
      • **/proc/meminfo**:包含關於記憶體使用情況的資訊。
      • **/proc/partitions**:包含關於磁碟分割槽的資訊。
      • **/proc/version**:包含核心版本資訊。
      • **/proc/<pid>**:每個正在執行的程序都有一個對應的子目錄,包含關於該程序的資訊,如狀態、檔案描述符、環境變數等。

特性

  • 動態性/proc目錄中的內容是動態生成的,隨著系統狀態的變化而變化。
  • 只讀性:大多數/proc檔案都是隻讀的,使用者可以讀取其中的資訊,但不能修改。
  • 虛擬性/proc是一個虛擬檔案系統,不佔用磁碟空間,資料直接從記憶體中讀取。

注意事項

  • 許可權管理/proc目錄中的某些檔案和子目錄可能具有特定的許可權設定,只有具有適當許可權的使用者才能訪問。
  • 安全性:由於/proc目錄提供對核心和系統狀態的訪問,惡意使用者可能會利用這些資訊進行攻擊。因此,建議使用者避免在不安全的環境中暴露這些資訊。

示例操作

  1. 檢視CPU資訊

    cat /proc/cpuinfo
  2. 檢視記憶體使用情況

    cat /proc/meminfo
  3. 檢視程序資訊

    ls /proc

    這條命令將列出所有正在執行的程序的PID。你可以進入特定PID的目錄(如/proc/1234)來檢視該程序的詳細資訊。

總之,/proc目錄在Kali Linux中扮演著重要的角色,它提供了一個介面,用於訪問核心和系統狀態資訊。合理使用該目錄可以幫助使用者監控和管理系統。

/var目錄 在Kali Linux(以及大多數類Unix作業系統)中,/var目錄用於儲存可變資料,即那些在系統執行過程中會經常改變的資料。以下是關於/var目錄的一些詳細資訊:

目錄結構

  • /var:
    • 用途:存放系統執行過程中生成的可變資料,如日誌檔案、快取檔案、臨時檔案等。
    • 內容:該目錄通常包含以下子目錄和檔案:
      • **/var/log**:存放系統日誌檔案,如系統訊息、應用程式日誌等。
      • **/var/cache**:存放應用程式的快取檔案,以提高效能。
      • **/var/spool**:存放等待處理的資料,如列印佇列、郵件佇列等。
      • **/var/tmp**:存放臨時檔案,這些檔案在系統重啟後可能仍然保留。
      • **/var/lib**:存放應用程式的可變資料,如資料庫檔案等。
      • **/var/mail**:存放使用者郵件檔案。
      • **/var/run**:存放執行時程序ID(PID)檔案。
      • **/var/lock**:存放檔案鎖,用於防止多個程序同時修改同一資源。

特性

  • 可變性/var目錄中的資料是動態變化的,隨著系統執行和應用程式的使用而變化。
  • 許可權管理/var目錄及其子目錄通常具有特定的許可權設定,以確保只有合適的使用者和組可以訪問和修改其中的資料。

注意事項

  • 備份:由於/var目錄包含重要的系統資料,建議定期備份該目錄以防止資料丟失。
  • 磁碟空間管理/var目錄可能會佔用大量磁碟空間,特別是在長時間執行的系統上。建議定期監控和清理該目錄,以確保有足夠的磁碟空間供其他重要任務使用。
  • 安全性:由於/var目錄包含敏感的系統資料,如日誌檔案和快取檔案,建議使用者避免在不安全的環境中暴露這些資訊。

總之,/var目錄在Kali Linux中扮演著重要的角色,它提供了一個儲存可變資料的場所,幫助系統管理員管理和維護系統的執行狀態。合理使用該目錄可以提高系統的可靠性和效能。

/uer目錄

在Kali Linux(以及大多數類Unix作業系統)中,/usr目錄是一個重要的系統目錄,用於儲存系統級的使用者程式和資料。以下是關於/usr目錄的一些詳細資訊:

目錄結構

  • /usr:
    • 用途:存放系統級的使用者程式、庫檔案、文件等。
    • 內容:該目錄通常包含以下子目錄和檔案:
      • **/usr/bin**:存放使用者可執行的二進位制檔案。
      • **/usr/sbin**:存放系統管理員可執行的二進位制檔案。
      • **/usr/lib**:存放共享庫檔案。
      • **/usr/local**:存放透過/usr/local安裝的軟體包。
      • **/usr/share**:存放共享的資料檔案,如文件、圖示、字型等。
      • **/usr/src**:存放原始碼檔案。
      • **/usr/include**:存放C/C++標頭檔案。
      • **/usr/games**:存放遊戲程式(在某些系統中)。

特性

  • 系統級資料/usr目錄中的資料是系統級的,適用於所有使用者。
  • 只讀性:大多數/usr目錄中的檔案和子目錄都是隻讀的,使用者可以讀取其中的資訊,但不能修改。
  • 共享性/usr目錄中的檔案和子目錄是共享的,多個使用者可以同時訪問和使用這些資料。

注意事項

  • 許可權管理/usr目錄及其子目錄通常具有特定的許可權設定,以確保只有合適的使用者和組可以訪問和修改其中的資料。
  • 備份:由於/usr目錄包含重要的系統資料和使用者資料,建議定期備份以防止資料丟失。
  • 安全性:由於/usr目錄包含敏感的系統資料,如可執行檔案和庫檔案,建議使用者避免在不安全的環境中暴露這些資訊。

總之,/usr目錄在Kali Linux中扮演著重要的角色,它提供了一個儲存系統級使用者程式和資料的場所,幫助系統管理員管理和維護系統的執行狀態。合理使用該目錄可以提高系統的可靠性和效能。

/usr/bin目錄

在Kali Linux(以及大多數類Unix作業系統)中,/usr/bin目錄是一個重要的系統目錄,用於存放使用者可執行的二進位制檔案。以下是關於/usr/bin目錄的一些詳細資訊:

目錄結構

  • /usr/bin:
    • 用途:存放使用者可執行的二進位制檔案,這些檔案通常是系統級的工具和應用程式。
    • 內容:該目錄通常包含各種使用者可執行的二進位制檔案,例如:
      • cat:用於連線檔案並列印到標準輸出裝置。
      • chmod:用於更改檔案的許可權。
      • cp:用於複製檔案或目錄。
      • date:用於顯示或設定系統時間和日期。
      • df:用於報告檔案系統的磁碟空間使用情況。
      • grep:用於在檔案中搜尋匹配的行。
      • ls:用於列出目錄的內容。
      • mkdir:用於建立新的目錄。
      • mv:用於移動或重新命名檔案或目錄。
      • ps:用於顯示當前執行的程序。
      • rm:用於刪除檔案或目錄。
      • tar:用於打包和解包檔案。
      • touch:用於建立空檔案或更新檔案的修改時間。

特性

  • 系統級工具/usr/bin目錄中的檔案是系統級的工具和應用程式,適用於所有使用者。
  • 只讀性:大多數/usr/bin目錄中的檔案都是隻讀的,使用者可以讀取其中的資訊,但不能修改。
  • 共享性/usr/bin目錄中的檔案和子目錄是共享的,多個使用者可以同時訪問和使用這些資料。

注意事項

  • 許可權管理/usr/bin目錄及其檔案通常具有特定的許可權設定,以確保只有合適的使用者和組可以訪問和執行這些檔案。
  • 安全性:由於/usr/bin目錄包含可執行的二進位制檔案,惡意使用者可能會利用這些檔案進行攻擊。因此,建議使用者避免在不安全的環境中暴露這些資訊。
  • 備份:雖然/usr/bin目錄本身通常不需要備份,但其中的可執行檔案可能包含重要的系統工具,建議定期備份以防止資料丟失。

總之,/usr/bin目錄在Kali Linux中扮演著重要的角色,它提供了一個存放使用者可執行二進位制檔案的場所,幫助系統管理員管理和維護系統的執行狀態。合理使用該目錄可以提高系統的可靠性和效能。

/usr/sbin目錄

在Kali Linux(以及大多數類Unix作業系統)中,/usr/sbin目錄用於存放系統管理員使用的二進位制可執行檔案。以下是關於/usr/sbin目錄的一些詳細資訊:

目錄結構

  • /usr/sbin:
    • 用途:存放系統管理工具和二進位制可執行檔案,這些工具主要用於系統級別的操作和維護。
    • 內容:該目錄通常包含以下型別的工具和命令:
      • adduser:用於新增新使用者。
      • apt-get:用於管理APT包管理器的軟體包。
      • dpkg:用於管理Debian包管理器的軟體包。
      • ifconfig:用於配置網路介面(在較新的系統中,可能被ip命令取代)。
      • init:用於啟動和停止系統執行級別。
      • ip:用於配置和管理網路介面和路由。
      • mount:用於掛載檔案系統。
      • reboot:用於重啟系統。
      • shutdown:用於關閉系統。
      • systemctl:用於管理系統服務(在較新的系統中,特別是使用systemd的系統)。
      • usermod:用於修改使用者賬戶。

特性

  • 系統管理工具/usr/sbin目錄中的工具主要用於系統管理任務,通常需要較高的許可權(如root許可權)才能執行。
  • 只讀性:大多數/usr/sbin目錄中的檔案都是隻讀的,使用者可以讀取其中的資訊,但不能修改。
  • 共享性/usr/sbin目錄中的檔案和子目錄是共享的,多個使用者可以同時訪問和使用這些資料。

注意事項

  • 許可權管理/usr/sbin目錄及其檔案通常具有特定的許可權設定,以確保只有合適的使用者和組可以訪問和執行這些檔案。
  • 安全性:由於/usr/sbin目錄包含重要的系統管理工具,惡意使用者可能會利用這些工具進行攻擊。因此,建議使用者避免在不安全的環境中暴露這些資訊。
  • 備份:雖然/usr/sbin目錄本身通常不需要備份,但其中的可執行檔案可能包含重要的系統工具,建議定期備份以防止資料丟失。

總之,/usr/sbin目錄在Kali Linux中扮演著至關重要的角色,它儲存了系統管理工具和二進位制可執行檔案,這些工具主要用於系統級別的操作和維護。合理管理和維護這個目錄對於確保系統的穩定性和功能性至關重要。

ssh(遠端連線工具)

Kali Linux中的SSH(Secure Shell)是一種安全的網路協議,用於在不安全的網路上安全地進行遠端登入和其他網路服務操作。透過SSH,可以加密所有傳輸的資料,防止DNS欺騙和IP欺騙,並且傳輸的資料是經過壓縮的,從而加快傳輸速度。

在Kali中配置SSH服務並開機自動啟動

要在Kali Linux中配置SSH服務並使其開機自動啟動,可以按照以下步驟操作:

  1. 修改SSH配置檔案

    使用vim編輯器開啟/etc/ssh/sshd_config檔案,將PermitRootLogin prohibit-password修改為PermitRootLogin yes,並去掉#PasswordAuthentication no前面的註釋,將其修改為YES

  2. 設定開機啟動

    執行命令systemctl enable ssh,以設定SSH服務開機自啟動。

  3. 重啟SSH服務

    執行命令systemctl restart ssh,以重啟SSH服務。

  4. 檢視22埠服務狀態

    使用命令netstat -apn | grep ssh,檢視SSH服務是否已經開啟。

Kali Linux SSH的高階應用

  • 使用nohup在遠端主機上執行程式

    透過nohup命令,可以在關閉終端後仍然保持遠端主機上的程式執行。

Kali Linux SSH的安全性

  • 使用基於金鑰的身份驗證

    建立強SSH金鑰對,並啟用基於金鑰的身份驗證,是加強SSH安全性的有效方法。

  • 更改SSH埠號

    將SSH埠從預設的22埠更改為非標準高階口,可以減少被攻擊的可能性。

  • 禁用SSH根登入

    禁用root登入可以增加一層額外的安全性,因為要求使用者以普通使用者身份登入,然後在需要時升級許可權。

透過以上步驟,可以確保Kali Linux中的SSH服務安全、高效地執行,為遠端管理和資料傳輸提供強有力的支援。

chmod(許可權設定)

在Kali Linux(以及大多數類Unix作業系統)中,chmod是一個用於更改檔案或目錄許可權的命令列工具。許可權管理是Unix和類Unix系統中的一個重要概念,它決定了使用者對檔案和目錄的訪問級別。以下是關於chmod命令的一些詳細資訊:

chmod命令的基本用法

chmod命令的基本語法如下:

chmod [選項] [許可權模式] 檔案或目錄

許可權模式

許可權模式可以是三種形式之一:

  1. 符號形式:使用+-=符號來新增、刪除或設定許可權。

    • +:新增許可權。
    • -:刪除許可權。
    • =:設定許可權。

    例如:

    chmod u+x file  # 給檔案所有者新增執行許可權
    chmod g-r file # 刪除檔案所屬組的讀許可權
    chmod o+w file # 給其他使用者新增寫許可權
    chmod u=rwx,g=rx,o=r file # 設定檔案所有者的許可權為rwx,所屬組的許可權為rx,其他使用者的許可權為r
  2. 八進位制形式:使用三位八進位制數來表示許可權。

    • 每一位分別代表使用者(u)、組(g)和其他(o)的許可權。
    • 每一位可以是0到7之間的數字,分別表示沒有許可權(0)、讀許可權(4)、寫許可權(2)和執行許可權(1)的組合。

    例如:

    chmod 755 file  # 設定檔案許可權為rwxr-xr-x
    chmod 644 file # 設定檔案許可權為rw-r--r--
  3. 參考檔案形式:使用另一個檔案的許可權作為參考。

    • 例如:
      chmod --reference=reference_file file  # 將file的許可權設定為與reference_file相同

常見選項

  • -R:遞迴地更改目錄及其內容的許可權。

    chmod -R 755 directory  # 遞迴地設定directory及其內容的許可權為rwxr-xr-x
  • -v:顯示詳細資訊,列出每個檔案或目錄的許可權更改情況。

    chmod -v 755 file  # 顯示file的許可權更改情況
  • -c:僅顯示更改的檔案或目錄的許可權資訊。

    chmod -c 755 file  # 僅顯示file的許可權更改資訊

注意事項

  • 許可權管理:合理設定檔案和目錄的許可權對於系統的安全性和功能性至關重要。確保只有合適的使用者和組可以訪問和修改敏感資料。
  • 許可權繼承:目錄的許可權會影響其子目錄和檔案的許可權。使用-R選項可以遞迴地更改目錄及其內容的許可權。
  • 許可權衝突:在設定許可權時,符號形式和八進位制形式的許可權模式可能會產生衝突。確保許可權模式的設定符合預期。

總之,chmod命令在Kali Linux中扮演著重要的角色,它提供了一個靈活的工具來管理檔案和目錄的許可權。合理使用該命令可以提高系統的可靠性和安全性。

chown(改變當前所處的使用者和所處的使用者組)

在Kali Linux(以及大多數類Unix作業系統)中,chown(change owner)是一個用於更改檔案或目錄所有者的命令列工具。許可權管理是Unix和類Unix系統中的一個重要概念,它決定了使用者對檔案和目錄的訪問級別。以下是關於chown命令的一些詳細資訊:

chown命令的基本用法

chown命令的基本語法如下:

chown [選項] 使用者名稱[:組名] 檔案或目錄

常見選項

  • -R:遞迴地更改目錄及其內容的擁有者和組。

    chown -R username:groupname directory  # 遞迴地設定directory及其內容的擁有者和組
  • -v:顯示詳細資訊,列出每個檔案或目錄的擁有者和組更改情況。

    chown -v username:groupname file  # 顯示file的擁有者和組更改情況
  • -c:僅顯示更改的檔案或目錄的擁有者和組資訊。

    chown -c username:groupname file  # 僅顯示file的擁有者和組更改資訊

注意事項

  • 許可權管理:合理設定檔案和目錄的所有者和組對於系統的安全性和功能性至關重要。確保只有合適的使用者和組可以訪問和修改敏感資料。
  • 許可權繼承:目錄的擁有者和組會影響其子目錄和檔案的擁有者和組。使用-R選項可以遞迴地更改目錄及其內容的擁有者和組。
  • 許可權衝突:在設定擁有者和組時,確保許可權模式的設定符合預期。

示例

假設你想將檔案example.txt的所有者更改為使用者john,並將其組更改為developers,你可以使用以下命令:

chown john:developers example.txt

如果你想遞迴地更改目錄my_directory及其所有子目錄和檔案的擁有者和組,你可以使用以下命令:

chown -R john:developers my_directory

總之,chown命令在Kali Linux中扮演著重要的角色,它提供了一個靈活的工具來管理檔案和目錄的所有者和組。合理使用該命令可以提高系統的可靠性和安全性。

useradd & adduser

adduser

在Kali Linux(以及大多數基於Debian的Linux發行版)中,adduser命令用於新增新使用者到系統中。這個命令比useradd命令提供了更多的互動性和使用者友好性,適合於日常使用。以下是關於adduser命令的一些詳細資訊:

adduser命令的基本用法

adduser命令的基本語法如下:

adduser [選項] 使用者名稱

常見選項

  • --disabled-password:建立一個沒有設定密碼的使用者賬戶,通常用於服務賬戶。
  • --gecos:設定使用者的GECOS欄位,這是一個描述使用者資訊的字串,通常包括全名、辦公室位置、電話號碼等。
  • --group:將新使用者新增到指定的組中。
  • --home:指定新使用者的家目錄路徑。
  • --shell:指定新使用者的預設shell。
  • --system:建立一個系統使用者賬戶,通常用於服務賬戶。

示例

建立一個普通使用者

sudo adduser newuser

執行這個命令後,系統會提示你輸入新使用者的密碼以及其他一些可選資訊。

建立一個系統使用者

sudo adduser --system --group sudo --home /home/newuser --shell /bin/bash newuser

這個命令會建立一個系統使用者newuser,並將其新增到sudo組,家目錄設定為/home/newuser,預設shell設定為/bin/bash

注意事項

  • 許可權管理:新增新使用者時,確保分配合適的許可權和組,以確保系統的安全性和功能性。
  • 密碼策略:為新使用者設定強密碼,並遵循系統的密碼策略。
  • 使用者資訊:填寫完整的GECOS欄位,以便更好地識別和管理使用者。

總之,adduser命令在Kali Linux中提供了一個簡單而強大的工具來新增新使用者。合理使用該命令可以提高系統的管理效率和安全性。

useradd

在Kali Linux(以及大多數基於Unix和Linux的作業系統)中,useradd命令用於在系統中建立新的使用者賬戶。這個命令比adduser命令提供了更少的互動性,但更適合於指令碼編寫和自動化任務。以下是關於useradd命令的一些詳細資訊:

useradd命令的基本用法

useradd命令的基本語法如下:

useradd [選項] 使用者名稱

常見選項

  • -c:指定使用者的描述資訊(GECOS欄位)。
  • -d:指定使用者的家目錄路徑。
  • -e:指定使用者的賬戶過期日期。
  • -f:指定密碼過期後的天數。
  • -g:指定使用者的主組。
  • -G:指定使用者的附加組。
  • -m:建立使用者的家目錄。
  • -M:不建立使用者的家目錄。
  • -N:不建立使用者所屬的組。
  • -o:允許建立具有相同UID的使用者。
  • -p:指定使用者的加密密碼。
  • -r:建立一個系統使用者。
  • -s:指定使用者的預設shell。
  • -u:指定使用者的UID。

示例

建立一個普通使用者

sudo useradd -m newuser

這個命令會建立一個名為newuser的使用者,併為其建立家目錄。

建立一個系統使用者

sudo useradd -r -s /bin/false newuser

這個命令會建立一個系統使用者newuser,並將其預設shell設定為/bin/false,這樣使用者就不能登入到系統。

注意事項

  • 許可權管理:建立新使用者時,確保分配合適的許可權和組,以確保系統的安全性和功能性。
  • 密碼設定:新建立的使用者沒有設定密碼,需要使用passwd命令為新使用者設定密碼。
  • 使用者資訊:填寫完整的GECOS欄位,以便更好地識別和管理使用者。

總之,useradd命令在Kali Linux中提供了一個強大的工具來建立新使用者。合理使用該命令可以提高系統的管理效率和安全性。

userdel(刪除使用者)

在Kali Linux(以及大多數基於Unix和Linux的作業系統)中,userdel命令用於刪除使用者賬戶及其相關檔案。以下是關於userdel命令的一些詳細資訊:

userdel命令的基本用法

userdel命令的基本語法如下:

userdel [選項] 使用者名稱

常見選項

  • -r:遞迴地刪除使用者的家目錄及其內容。
  • -f:強制刪除使用者,即使使用者的家目錄或郵箱仍然存在。

示例

刪除一個普通使用者

sudo userdel newuser

這個命令會刪除名為newuser的使用者,但不會刪除其家目錄和郵箱。

刪除一個使用者及其家目錄

sudo userdel -r newuser

這個命令會刪除名為newuser的使用者,並遞迴地刪除其家目錄及其內容。

注意事項

  • 許可權管理:刪除使用者時,確保只刪除不再需要的使用者賬戶,以避免誤刪重要賬戶。
  • 資料備份:在刪除使用者之前,建議備份使用者的重要資料,以防止資料丟失。
  • 依賴關係:檢查系統中是否有其他使用者或服務依賴於要刪除的使用者,以避免破壞系統的完整性。

總之,userdel命令在Kali Linux中提供了一個簡單而強大的工具來刪除使用者賬戶。合理使用該命令可以提高系統的管理效率和安全性。

sudo(以管理員許可權執行)

在Kali Linux中,sudo命令是一個非常重要的工具,它允許普通使用者執行需要root許可權的命令。透過使用sudo,使用者可以在不需要切換到root使用者的情況下,執行系統管理任務,從而提高了系統的安全性和管理的便利性。

sudo命令的基本用法

sudo命令的基本語法如下:

sudo [選項] 命令

例如,要使用sudo更新系統軟體包,可以執行以下命令:

sudo apt-get update

sudo命令的常見選項

  • -i:以root使用者身份執行命令,並切換到root使用者的shell。
  • -l:列出當前使用者可以執行的命令。
  • -V:顯示sudo的版本資訊。

注意事項

  • 使用sudo時,應確保當前使用者已被新增到/etc/sudoers檔案中,否則將無法使用sudo命令。
  • sudo命令不應頻繁使用,以避免潛在的安全風險。

總之,sudo命令在Kali Linux中扮演著重要的角色,它提供了一個安全且靈活的方式來執行需要更高許可權的命令。合理使用sudo命令不僅可以提高工作效率,還可以增強系統的安全性。

password(修改使用者密碼)

在Kali Linux中,密碼管理是一個重要的安全方面,它涉及到如何設定、修改和重置密碼。以下是一些關於Kali Linux中密碼管理的詳細資訊:

設定密碼策略

在Kali Linux中,可以透過修改/etc/pam.d/common-password檔案來設定密碼策略。以下是設定密碼策略的步驟:

  1. 開啟終端,輸入以下命令來編輯/etc/pam.d/common-password檔案:

    sudo nano /etc/pam.d/common-password
  2. 在檔案中找到包含以下內容的一行:

    password requisite pam_pwquality.so retry=3
    
  3. 在該行下面新增以下內容來設定密碼策略:

    password requisite pam_pwquality.so retry=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
    

    這將設定密碼最小長度為8個字元,並要求密碼包含至少一個大寫字母、一個小寫字母、一個數字和一個特殊字元。

  4. 儲存檔案並退出編輯器。

  5. 輸入以下命令來重新載入PAM配置:

    sudo pam-auth-update

現在,密碼策略已經成功設定。當使用者嘗試更改密碼時,將受到設定的策略限制。

重置密碼

如果忘記了Kali Linux的密碼,可以透過以下步驟重置密碼:

  1. 關閉Kali Linux並重新啟動,但在啟動過程中按下e鍵進入GRUB編輯模式。

  2. 在編輯介面中,找到linuxlinuxefi行(取決於你的系統架構),並將ro改為rw,然後在行尾新增init=/bin/bash

  3. CTRL+x鍵以剛才的配置重啟Kali Linux。

  4. 系統將以單使用者模式啟動,此時可以輸入passwd命令來重置密碼。

透過以上步驟,可以有效地管理Kali Linux中的密碼,確保系統的安全性和穩定性。

Linux資源耗盡病毒

使用alert或notify-send等工具傳送通知。

#!/bin/bash
while true
do notify-send”無限彈窗” “這是一個無限迴圈的彈窗”
sheep 2
done

儲存這個指令碼到一個檔案中,比如infinite_popup.sh,然後給它執行許可權:chmod +x infinite_popup.sh

執行指令碼: ./infinite_popup.sh

命令分析: 這段指令碼是一個簡單的bash指令碼,它的目的是使用notify-send命令來傳送桌面通知,建立一個無限迴圈的彈窗效果。下面是對這段指令碼的逐行分析:

#!/bin/bash

這是一個shebang行,它告訴系統使用/bin/bash直譯器來執行這個指令碼。

while true
do

這是一個無限迴圈的開始。while true表示迴圈條件永遠為真,因此迴圈體會無限次執行,除非指令碼被外部中斷。

    notify-send "無限彈窗" "這是一個無限迴圈的彈窗"

這一行使用notify-send命令傳送一個桌面通知。notify-send是許多Linux桌面環境(如GNOME, KDE等)支援的一個命令列工具,用於傳送桌面通知。這裡傳送的通知標題是"無限彈窗",內容是"這是一個無限迴圈的彈窗"。

    sleep 2

這一行讓指令碼暫停執行2秒鐘。sleep命令用於暫停指令碼的執行一段時間,這裡的2表示暫停2秒。這是為了防止彈窗無限快速地連續出現,給使用者一些時間來閱讀每個通知。

done

這是無限迴圈的結束。

儲存這個指令碼到一個檔案中,比如infinite_popup.sh,然後給它執行許可權:

chmod +x infinite_popup.sh

這裡的chmod +x命令用於改變檔案的許可權,使得檔案可執行。

執行指令碼:

./infinite_popup.sh

執行這個指令碼將會導致桌面通知無限迴圈地彈出,每個通知之間間隔2秒鐘。

需要注意的是,這個指令碼會持續執行直到被外部中斷(比如在終端中按Ctrl+C)。在實際使用中,無限迴圈的通知可能會對使用者造成干擾,因此通常不建議在不受控制的環境中執行此類指令碼。

windows與linux的命令視窗

1、Windows dos程式設計 2、Linux bash程式設計

修改後程式碼:

#!/bin/bash
while true
do gnome-terminal
#! Sleep 1不加則為死迴圈
sleep 1
done

命令分析: 這是一個 Bash 指令碼,用於在 Linux 系統中無限迴圈地開啟 gnome-terminal(一個流行的圖形介面終端模擬器)。下面是對這個指令碼的逐行分析:

#!/bin/bash

這一行是指令碼的 shebang,它告訴系統使用 /bin/bash 這個直譯器來執行後面的指令碼內容。

while true
do

這是一個無限迴圈的開始。while true 表示只要條件為真(在這裡條件永遠為真),迴圈就會一直執行下去。

gnome-terminal

這行命令會開啟一個新的 gnome-terminal 視窗。每次迴圈都會執行這個命令,因此會不斷開啟新的終端視窗。

# Sleep 1 不加則為死迴圈

這是一行註釋,解釋了下一行程式碼的作用。如果不加 sleep 1,那麼 gnome-terminal 命令會幾乎連續不斷地執行,導致系統資源迅速耗盡,形成所謂的“死迴圈”。

sleep 1

這行命令會讓指令碼暫停執行 1 秒鐘。這是為了避免上述的死迴圈情況,給系統一個喘息的機會,同時也控制了終端視窗的開啟速度。

done

這是無限迴圈的結束標誌。

注意:這個指令碼在實際使用中可能會導致系統資源迅速耗盡,因為它會不斷開啟新的終端視窗。如果你想要一個更實用的版本,可以考慮新增一些條件來控制迴圈的執行次數或者提供使用者互動來退出迴圈。

例如,你可以修改指令碼,使其在使用者按下某個鍵之後退出迴圈:

#!/bin/bash

while true; do
gnome-terminal &
read -n 1 -s -r -p "Press any key to continue or 'q' to quit: " key
if [[ $key == 'q' ]]; then
break
fi
done

這個修改後的指令碼會在每次開啟新的 gnome-terminal 後等待使用者按鍵,如果使用者按下 'q',則退出迴圈。

相關文章