1. hash值
对文件进行hash运算, 生成一段哈希值, 对比自己的哈希值和发送文件给其他人后的哈希值, 检验文件是否被修改
md5sum file
sha1sum file
sha256sum file
sha512sum file
# /etc/login.defs 可以查看一些关于生成用户的基本配置,
# 在给用户加密是用的是sha512算法
2. chage
先来看看/etc/shadow的内容:
用户名:加密后的密码:从1970.1.1开始到上一次修改密码之间的时间:密码的最小存活期:最大存活期:\
警告天数:密码过期时间:账号过期时间:保留位
# 注:
# passwd: !!表示没有设置密码, !表示lock, 用户无法登录
# 若第三个位置的值为0, 则强制用户在下一次登录时修改密码
# 在密码的最小存活期限内不可修改密码, 为0则表示随时可以修改
chage options username
-d days
-L lock | -U unlock
-E 过期
-I 过期
3. 监控工具
w # 查看系统中当前的用户连接数
last # 用户登录系统的历史
lastb # 登录未遂的历史
lastlog # 登录的日志
4. 默认权限umask
目录 777
文件 666 # 默认权限中去除了x权限, 使系统更安全
不同用户的umask值:
root 0022
普通用户 0002
初始配置的umask值在/etc/bashrc中, 用户可在~/.bashrc中定义自己的umask值
# 最终用户创建的目录默认权限 = 777 - 用户的umask值
# 文件 = 666 - 用户的umask值
5. 分区与文件系统
作用: 逻辑分割硬盘
文件系统类型 适合的环境 优缺点
xfs 大文件 占CPU多, 但性能佳
ext 小文件 占CPU少, 性能没有xfs好
# 文件系统分好之后inode和block的数量就同时被确定好了
baobab
文件系统使用占比的图形化展示
6. inode和block
inode与文件一一对应, inode数量用完便不能存文件
file
元数据 | 数据 |
---|---|
metadata | data |
用来描述数据 | block size, 文件系统的最小组成单位: 1K, 2K, 4K |
类型, 权限, UID, GID<br />链接数<br />大小, 时间戳<br />指针(指明数据在磁盘中的位置)<br />等等... |
# 用户真正在读取一个文件数据的过程是这样的:
/root -> word (文件名) -> inode (文件名所对应的)
-> inode 表 (找到对应的指针) -> block块中的data
# ext派系的命令:
ls -h # 实际大小(包括其内所含文件)
du -h # 所占的block块大小
df -i # 查看每一个分区的文件系统的inode信息
tune2fs -l /dev/sda1 # 查看分区/dev/sda1的super block信息
dumpe2fs /dev/sda1 # 查看分区/dev/sda1的块组信息(包括普通块和超级块)
# 修复ext系列文件系统(假设/dev/sdb1挂载在/mnt下):
dd if=/dev/zero of=/dev/sdb1 bs=1K count=4 #破坏了分区/dev/sdb1的第一个superblock
umount /mnt # 修复时需要先卸载
fsck /dev/sdb1 # 进行文件系统检查
e2fsck [-b 98304] /dev/sdb1 # 可用-b选项指定以98304位置的超级块进行修复
# 注: lost+found 此文件中若存在内容, 一般是inode与block无法对应等文件系统损坏的问题
# 修复xfs系列文件系统:
xfs_repair
(1) cp和inode
- 分配了一个新的inode, 在inode table中新建了一条entry
- 目录下新建文件名, 建立inode和block之间的映射
- 将data复制到新文件所对应的block中
(2) mv和inode
- 同一个文件系统内:
- 新目录下创建新文件名
- 删除旧的文件名
- inode table和data block均不变
- 不同的文件系统内:
- cp + rm
- 会在新的文件系统内分配新的inode
(3) rm和inode
- 减少链接数, 直到为0
- block块将被释放, 转为可用(但此时原数据依旧存在)
- 移除文件名
7. 软硬链接
(1) 硬链接
# 特点:
# 1. 在同一个文件系统内
# 2. 有同一个inode
# 3. link count + 1
# 4. 不可跨分区和磁盘
# 5. 两者指向同一个文件数据, 其中一个被修改时另一个也会被修改
link source dest
link /root/tmp_test/ /tmp/ # 将/root/tmp_test硬链接到/tmp目录
(2) 软链接
link -s source dest
link -s /root/boot_test/ /boot/
# 将/root/boot_test软链接到/boot目录, 注意使用文件的绝对路径!
# lrwxrwxrwx中的"l"特指软链接
网友评论