1. 程式人生 > >Linux磁碟管理、磁碟加密

Linux磁碟管理、磁碟加密

磁碟管理

硬碟 sda 硬碟安裝了作業系統 gpt
mbr : 需要佔用硬碟的前512個位元組 446位元組是主引導資訊 64個位元組分割槽表 2位元組儲存 結尾資訊 。最多4個主分割槽 特殊的分割槽擴充套件分割槽 可以分割槽出多個 邏輯分割槽
gpt :支援的主分割槽數量 自己定義 2T

建立分割槽

關閉虛擬機器,再新增一塊新硬碟再開機
parted /dev/sdb 進行分割槽
分割槽的過程

  1. 先要指定分割槽表型別 gpt
     parted /dev/sdb -s mklabel gpt 指定分表型別為gpt
  2. 分割槽 要求分5個分割槽 200M
     parted /dev/sdb -s mkpart primary 1 200
     parted /dev/sdb -s mkpart primary 201 400
  3. 檢視分割槽資訊
     print 列出當前分割槽表
     quit 退出工具
     rm 數字 刪除指定分割槽
     確認分割槽 cat /proc/partitions

建立檔案系統格式化

  1. ext4 檔案系統 儲存資料
  2. fat32 支援
  3. swap 系統 交換分割槽 (虛擬記憶體) 分割槽大小要求為記憶體的1.5倍。8G 以上實體記憶體 swap不要給超過8G。

掛載:進入分割槽需要與目錄進行連線,進入目錄才是進入分割槽

要求:sdb1建立ext4檔案系統 , sdb2 fat32 , sdb3 swap
mkdir /mnt/ext4 //建立用於掛載的目錄
mkfs.ext4 -b 1024 /dev/sdb1 //將sdb1格式化成ext4格式
mount /dev/sdb1 /mnt/ext4 //將sdb1掛載到/mnt/ext4目錄

mkdir /mnt/fat32
mkfs.vfat -F32 /dev/sdb2
mount /dev/sdb2 /mnt/fat32

mkswap /dev/sdb3
swapon /dev/sdb3

cat /proc/partitions

檢視分割槽情況
df -Th 觀察檔案系統利用率,可檢視格式化掛載情況
free -m 觀察記憶體使用情況
umount 解除安裝
swapoff 解除安裝

以上的所有掛載操作 都是臨時的 重啟後失效
若要長期生效,則要修改檔案系統的掛載列表 /etc/fstab (file system table)
掛載使用UUID編號進行裝置指定掛載
 blkid /dev/sdb1 >> /tmp/xxx.txt 將命令的結果輸出到檔案中。
 vim /etc/fstab 然後再命令模式下 
 :r ! blkid /dev/sdb1 將後面命令的輸出結果追加到檔案的最後一行。再使用 ctrl+v 進行區域選擇,進行剪下貼上。感嘆號代表強制

為什麼要用UUID編號進行裝置掛載?
 由於/dev/sdb 對硬碟不具有唯一性,實際應用中,當多個硬碟被拔出再插入再重新插入磁碟時,若順序變化時,原先的/dev/sdb可能變成/dev/sdc,容易造成錯誤。
 UUID具有唯一性,可用 blkid /dev/sdb1 其唯一的UUID
邏輯卷可直接用裝置碼而不需要用UUID
除非給邏輯卷改名字,否則邏輯卷的碟符都是確定的,不會隨著拔插發生變化,具有身份辨識度。


磁碟管理練習:

  1. /tmp/test.txt 和目錄 /tmp/test。 要求設定許可權,檔案的所屬者為allen檔案只有allen可讀無其他許可權,/tmp/test目錄所屬組為bob,要求改組中成員可以進入,其他使用者不可以進入。
 chown allen  /tmp/test.txt
 chmod  u=r,go=--- /tmp/test.txt
 chmod  400
 chgrp  bob  /tmp/test
 chmod  u=rwx,g=rwx,o=--- /tmp/test
 chmod  770
  1. 對/dev/sdb進行分割槽。指定使用gpt分割槽表,分一個大小為200M的主分割槽。
     parted /dev/sdb -s mklabl gpt
     parted /dev/sdb -s mkpart primary 1 200
  2. 對sdb1建立檔案系統ext4並將其永久掛載到/mnt/ext4目錄中。
     mkdir /mnt/ext4
     mkfs.ext4 -b 1024 /dev/sdb1
     mount /dev/sdb1 /mnt/ext4
     blkid /dev/sdb1
     vim /etc/fstab
     UUID=xxxx /mnt/ext4 ext4 defaults 0 0
  3. 在/tmp目錄下建立一個名為class的目錄,並設定該目錄許可權為所有人可讀寫可進入。
     chmod a=rwx /tmp/class
     chmod 777 /tmp/class
  4. 要求設定class目錄的屬主為自己同名使用者,屬組為class2。並使用自己名字的使用者在其中建立一個名為test.txt的檔案
     chown allen /tmp/class 修改所屬者
     chgrp class2 /tmp/class 修改所屬組
  5. 設定test.txt檔案的許可權為只有自己同名使用者可讀寫,其他人無任何許可權。
     chmod u=rw,go=— /tmp/class/allen.txt
     chmod 600 /tmp/class/allen.txt
  6. 驗證其他使用者可不可以刪除allen.txt
  7. 要求為vim命令字設定suid,同名使用者通過vim命令刪除root使用者密碼
  8. 管理員在/下建立一個名為centos的目錄並賦予建立許可權。要求自己同名的使用者在該目錄建立的檔案繼承該目錄的屬組。
  9. 要求修改該/centos目錄許可權,目錄中的檔案只有建立的人才能刪除。

作業:
1.為虛擬機器新增1塊大小為20G的硬碟sdb,將該硬碟劃分3個主分割槽分別為100M。
2.將sdb1格式化為ext4檔案系統並建立掛載點掛載到/mnt/ext4dir目錄
3.將sdb2格式化為fat32檔案系統並建立掛載點掛載到/mnt/fat32dir目錄
4.將sdb3格式化為swap檔案系統並掛載
5.以上分割槽使用UUID實現永久性掛載
6.要求為vim命令字設定suid,同名使用者通過vim命令刪除root使用者密碼
7.要求修改該/centos目錄許可權,目錄中的檔案只有建立的人才能刪除。
8.在/tmp目錄下建立一個名為class的目錄,並設定該目錄許可權為所有人可讀寫可進入。(用兩種賦權法)


磁碟加密

關閉對映檔案前要先解除安裝

加密的技術 是不能建立在檔案系統之上的

  1. 準備一個200M 的一個空白分割槽
     parted /dev/sdb -s mkpart primary 801 1000 ---- 如果之前建立過分割槽表重新建立分割槽需要重新整理分割槽表,reboot
  2. 對sdb4進行加密處理
     cryptsetup luksFormat /dev/sdb4 —加密格式處理
     提示大寫YES 密碼確認 6位
  3. 需要將加密後的sdb4分割槽進行對映,對映成為一個新的裝置檔案,可以建立檔案系統。
     cryptsetup luksOpen /dev/sdb4 jiamidisk
     對映的裝置檔案會存放在 /dev/mapper/ 取名為jiamidisk,則對映的裝置檔案路徑為/dev/mapper/jiamidisk
     需要確認密碼才允許對映
    為什麼要對映?
      因為裝置分割槽不支援掛載,若對已經加密過的分割槽再格式化則沒有意義,因此需要對映成一個新的裝置檔案,再格式化。
  4. 建立檔案系統並使用。
     mkdir /mnt/sdisk
     mkfs.ext4 -b 1024 /dev/mapper/jiamidisk
     mount /dev/mapper/jiamidisk /mnt/sdisk
  5. 關閉對映檔案。
     先解除安裝裝置 umount /dev/mapper/jiamidisk
     cryptsetup luksClose jiamidisk
  6. 啟用
     cryptsetup luksOpen /dev/sdb4 sundisk (千萬不要格式化)
     密碼確認
     mount掛載使用即可

加密分割槽的問題與處理
1.永久掛載問題 對映的裝置沒了 fstab檔案寫了 不掛在裝置。
 vim /etc/crypttab
 第一列 對映名稱 第二列 裝置名稱
 sundisk /dev/sdb4
2.啟動時候提供裝置密碼即可。

對對映分割槽進行key檔案形式的永久掛載:使用key檔案作為 加密驗證的密碼
1.建立一個檔案使他成為驗證加密磁碟的密碼
 dd if=/dev/random of=/root/keyfile bs=4096 count=1 建立一個內容為隨機的key檔案
2.將key檔案和加密裝置做關聯
 vim /etc/crypttab //解決重啟的過程中沒人做luksOpen的 步驟
  sundisk /dev/sdb4 /root/keyfile
 cryptsetup luksAddKey /dev/sdb4 /root/keyfile
 密碼確認
 重啟驗證 不需要我輸入密碼 即可掛載加密裝置。

練習

  1. 如何對一個分割槽/dev/sdb5進行crypt加密處理?並對映名字為kaso臨時掛載到/mnt/kaso目錄中。
    cryptsetup luksFormat /dev/sdb5
    YES
    cryptsetup luksOpen /dev/sdb5 kaso
    確認密碼
    mkfs.ext4 /dev/mapper/kaso
    mount /dev/mapper/kaso /mnt/kaso

  2. 如何對已經kaso這個對映分割槽進行key形式的永久掛載
    dd if=/dev/random of=/root/keyfile bs=4096 count=1
    vim /etc/fstab
    /dev/mapper/kaso /mnt/kaso ext4 defaults 0 0
    cryptsetup luksAddKey /dev/sdb5 /root/keyfile 確認密碼
    vim /etc/crypttab
    blkid /dev/sdb5
    kaso UUID=xxxxx /root/keyfile