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

猜你喜欢

转载自blog.csdn.net/weixin_42747982/article/details/83984658
今日推荐