一、磁盘加密
1.磁盘加密
命令祥解:
[root@localhost ~]# cryptsetup luksFormat /dev/vdb1 ##对设备/dev/vdb1进行加密
WARNING!
========
This will overwrite data on /dev/vdb1 irrevocably.
Are you sure? (Type uppercase yes): yes ##小写的yes,直接退出,无效
[root@localhost ~]# cryptsetup luksFormat /dev/vdb1
WARNING!
========
This will overwrite data on /dev/vdb1 irrevocably.
Are you sure? (Type uppercase yes): YES ##大写的YES,确认并添加加密密码
Enter passphrase:
Verify passphrase:
[root@localhost ~]# mount /dev/vdb1 /mnt/ ##挂载设备/dev/vdb1
mount: unknown filesystem type 'crypto_LUKS' ##挂载失败,设备已被加密
[root@localhost ~]# ls /dev/mapper/ ##查看/dev/mapper/目录
control
[root@localhost ~]# cryptsetup open /dev/vdb1 butterfly ##对设备解密
Enter passphrase for /dev/vdb1: ##需手动输入密码
[root@localhost ~]# ls /dev/mapper/
butterfly control
[root@localhost ~]# mkfs.xfs /dev/mapper/butterfly ##将解密后生成的设备butterfly格式化
[root@localhost ~]# mount /dev/mapper/butterfly /mnt/ ##挂载设备butterfly
[root@localhost ~]# touch /mnt/tutu{1..3} ##对设备进行读写操作
[root@localhost ~]# ls /mnt/
tutu1 tutu2 tutu3
[root@localhost ~]# umount /mnt/ ##卸载设备
[root@localhost ~]# ls /mnt/
[root@localhost ~]# cryptsetup close butterfly ##将设备butterfly关闭
[root@localhost ~]# ll /dev/mapper/
total 0
crw-------. 1 root root 10, 236 May 2 06:23 control
[root@localhost ~]# mount /dev/mapper/butterfly /mnt/
mount: special device /dev/mapper/butterfly does not exist
[root@localhost ~]# mount /dev/vdb1 /mnt/
mount: unknown filesystem type 'crypto_LUKS'
[root@localhost ~]# cryptsetup open /dev/vdb1 butterfly
Enter passphrase for /dev/vdb1:
[root@localhost ~]# mount /dev/vdb1 /mnt/
mount: unknown filesystem type 'crypto_LUKS'
[root@localhost ~]# mount /dev/mapper/butterfly /mnt/
[root@localhost ~]# df
[root@localhost ~]#
磁盘加密,就像把设备放在一个有盖子的容器中,命令cryptsetup open /dev/vdb1 butterfly 就是打开盖子,将设备拿出来,进行一系列操作后,再用命令cryptsetup close butterfly 将设备放回容器中并盖上盖子。这样,可以提高安全性能。
图解:
2.加密磁盘的永久挂载
[root@localhost ~]# vim /root/diskpass ##加密字符存放处
[root@localhost ~]# chmod 600 /root/diskpass ##给该文件加权限
[root@localhost ~]# cryptsetup luksAddKey /dev/vdb1 /root/diskpass ##将密码文件做成容器的"盖子"
Enter any passphrase:
[root@localhost ~]# vim /etc/crypttab ##设置设备解密后的管理文件
[root@localhost ~]# vim /etc/fstab ##永久挂载设置
[root@localhost ~]# df
[root@localhost ~]# umount /mnt/
[root@localhost ~]# reboot
[root@localhost ~]# df
[root@localhost ~]#
编写的三份文件的内容:
[root@localhost ~]# cat /root/diskpass
147westos
[root@localhost ~]# cat /etc/crypttab
butterfly /dev/vdb1 /root/diskpass
解密后设备管理文件 设备 加密字符存放文件
[root@localhost ~]# cat /etc/fstab | tail -n 2
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1 ##文件本身存在
/dev/mapper/butterfly /mnt xfs defaults 0 0 ##编写内容
[root@localhost ~]#
3.加密清除
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# > /etc/crypttab
[root@localhost ~]# rm -fr /root/diskpass
[root@localhost ~]# umount /mnt/
[root@localhost ~]# cryptsetup close butterfly
[root@localhost ~]# mkfs.xfs /dev/vdb1
mkfs.xfs: /dev/vdb1 appears to contain an existing filesystem (crypto_LUKS).
mkfs.xfs: Use the -f option to force overwrite.
[root@localhost ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed May 7 01:22:57 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
[root@localhost ~]#
4.磁盘阵列
1.建立三个新分区用t改换为fd类型分区
fdisk /dev/vdb
mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3}
##-C表示进入创建模式 、-l级别、-a yes ,查看是否有设备文件,如果没有自动为其创建,-n 启用设备数,-x 闲置设备数
watch -n 1 cat /proc/mdstat
mkfs.xfs /dev/md0
mount /dev/md0 /mnt/
mdadm -D /dev/md0 #查看状态信息
mdadm -f /dev/md0 /dev/vdb1 #强制损坏
mdadm -D /dev/md0
mdadm -r /dev/md0 /dev/vdb1 #删除
mdadm -D /dev/md0
mdadm -a /dev/md0 /dev/vdb1 #重新加入
mdadm -D /dev/md0
umount /mnt/
mdadm -S /dev/md0 #停止阵列
5.配额
只针对设备,不针对用户
配额会较为平均的分配
mount -o usrquota /dev/vdb1 /mnt ##加载配额,针对xfs类型的设备
quotaon -uv /dev/vdb1 ##激活配额,-u检测用户,-v显示设备,针对ext的设备
xfs——一个64位的文件系统,最大支持8EB减1字节的单个文件系统
ext4——第四代扩展文件系统(Fourth EXtended filesystem),文件系统容量达到1EB,文件容量则达到16TB
edquota -u student ##编辑指定用户的磁盘配额
Filesystem ##表示本行配置记录对应的文件系统(分区),即配额的作用范围
blocks ##表示一个事实,用户当前已使用的磁盘空间容量,默认单位为KB
soft ##第三列的soft表示对应磁盘容量的软限制数值,默认单位为KB;第六列的soft表示对应文件数量的软限制数值,默认单位为个
hard ##第四列的hard表示对应磁盘容量的硬限制数值,默认单位为KB;第六列的hard表示对应文件数量的硬限制数值,默认单位为个
inodes ##表示已有文件数量多少
指定用户中的操作:
dd if=/dev/zero of=/mnt/studentfile bs=1M count=1 ##截取命令
从无限零设备/dev/zero中截取数据到/mnt/studentfile, bs=1M(一块的大小) count=1(块数)
quota ##显示磁盘使用情况和限额,-u 只显示用户限额
练习+解释说明
建立一个dos类型,大小为100M的主分区(设备/dev/vdb1)
fdisk -l 查看当前分区属性
将设备/dev/vdb1格式化,-f,强制
加载类型为xfs的设备/dev/vdb1的配额,并挂载在/mnt上
给/mnt赋予权限777
编辑用户student的磁盘配额
切换到student用户
从无限零设备/dev/zero中截取数据到/mnt/studentfile, bs=1M count=10,无报错
从无限零设备/dev/zero中截取数据到/mnt/studentfile, bs=1M count=20,无报错
从无限零设备/dev/zero中截取数据到/mnt/studentfile, bs=1M count=21,出现报错,原因此分配不均
报错如下:
dd: error writing ‘/mnt/studentfile’: Disk quota exceeded
21+0 records in
21+0 records out
20971520 bytes (21 MB) copied, 0.306071 s, 68.5MB/s
##显示是21+0 records in和21+0 records out,但实际上只分配到了20M
开机自动挂载设置 vim /etc/fstab