linux文件属性-硬链接-时间戳 |
作者:矮哥 归档:学习笔记 2017/01/19 |
目 录
1.6.1 报错:no space left on device. 4
2.2 配置文件/etc/passwd /etc/shadow /etc/group /etc/gshadow.. 5
第1章 链接
1.1 硬链接
1.1.1 硬链接简介
硬链接是值通过索引节点(Inode)来进行链接。在Linux(ext3,ext3,ext4)文件系统中,保存在磁盘分区的文件不管是什么类型都会给它分配一个编号,这个编号被成为索引节点编号(index inode)简称inode,即在系统中的文件编号。
在Linux文件系统中,多个文件名指向童一个人索引节点(inode号相同)(Inode)是正常且允许的。这样情况的文件被成为硬链接。
在同一个系统中(装修风格),多个文件的Inode号码相同(文件名不同),这些文件互为硬链接文件。
提示:硬链接文件就相当于文件的另外一个路口。硬链接的作用之一是允许一个文件拥有 多个有效路径名(多个入口 超市的多个门),这样 用户就可以建立硬链接到重要文件。以防止“误删”原数据。
1.1.2 硬链接删除原理
在linux系统中,删除静态文件(没有进程调用)(目录也是文件)的条件是与之相关的所有硬链接文件均被删除
1.1.3 硬链接小结
1. 怎么来的&啥意思
a) 通过 执行命令 “ln 源文件 硬链接文件”,即可完成创建硬链接。
b)在同一文件系统中,具有相同inode节点号的多个文件是互为硬链接文件
2. 特点
a) 硬链接与删除
i. 删除硬链接文件或者删除源文件任意之一,文件实体(block数据文件内容)并未被删除
ii. 只有删除原文件及所有对应的硬链接文件(链接数为0),文件实体block数据文件内容才会被删除。
iii. 当所有的硬链接文件及源文件被删除后,再存放得到数据会被占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收
b)硬链接文件就是文件的另一个入口
c) 可以通过给文件设置硬链接文件,来防止重要文件被误删。
d) 硬链接文件是普通文件,因此可以用rm命令删除
e) 文件彻底删除
i. 对于静态文件(文件没被调用)来讲,当硬链接数为0的时候,文件就被删除了
3. 查看文件的硬链接数
ls -hil ,stat ,i_link的查看文件方法
1.2 软连接
1.2.1 小结
1. 创建
a)执行命令“ln -s 源文件 软连接文件”,即可完成创建,软连接的文件不能存在
2.含义:
a)软连接类似windows的快捷方式,
b)软连接类似一个文本文件,里面存放着的源文件的路径。
3.特点
a)删除源文件,软连接文件依然存在,只是无法访问源文件
b)失效的时候一般是红底白字闪烁提示
c)软连接和源文件是不同类型的文件,也是不同文件,inode号码也不同
4.软链接文件的文件类型为“l”(小写字母L),可以用rm删除
1.3 软硬链接一些知识
目录是不允许创建硬链接的,不同文件系统也不可以创建硬链接。
当一个新目录创建的时候,硬链接数为2
1 [[email protected] ~]# ll -di aige aige/. 2 3 283811 drwxr-xr-x 2 root root 4096 Jan 12 21:01 aige 4 5 283811 drwxr-xr-x 2 root root 4096 Jan 12 21:01 aige/. 6 7 [[email protected] ~]# 8
在aige目录下在创建目录的时候:(目录..和上一级目录的inode号码一样)
1 [[email protected] ~]# ll -di aige aige/. aige/aige/.. 2 3 283811 drwxr-xr-x 3 root root 4096 Jan 12 21:03 aige 4 5 283811 drwxr-xr-x 3 root root 4096 Jan 12 21:03 aige/. 6 7 283811 drwxr-xr-x 3 root root 4096 Jan 12 21:03 aige/aige/.. 8 9 [[email protected] ~]# 10
1.4 有关目录的小结
1. 对于目录,不可以创建硬链接,但可以创建软链接。
2. 对于目录的软连接是生产场景运维中常用的技巧。
3. 猜测为何不能给目录创建硬链接,目录的硬链接不能跨文件系统
4. 每个目录下面都有一个硬链接“.”号,和对应上级目录的硬链接“..”
5. 在父目录里创建一个子目录,父目录的链接数增加1(每个子目录都有..来指向父目录。)但是在目录里创建文件,父目录的链接数不会增加
1.5 链接示意图
1.6 文件删除原理图
1.6.1 报错:no space left on device
block满了
block满了,但是进程正在被调用 lsof | grep -i delete 查看
inode满了
第2章 linux多用户多任务
Linux是一个多用户多任务可以同时在线使用的系统。
UID:一个唯一标识系统用户的账号。(User ID)
GID:组的ID号(Group ID)
2.1 用户介绍
超级用户:root
UID和GID均为0.root用户在每台unix/linux操作系统上是唯一且真实存在的。拥有最高权限
在生产环境中,一般会禁止root账号通过SSH远程连接服务器(保护好皇帝),更改SSH的默认端口号。
安全:最小化。
1. 安装系统最小化
2. 开启服务最小化
在企业工作中,没有特殊需求,应该尽量在普通用户下操作,而不是root
在linux,UID为0的用户是超级用户,但通常不使用超级用户,而是通过sudo提权来实现。
普通用户:
这类用户一般是由具备系统管理员root的权限的运维人员或系统管理员添加的。
切换用户su - 用户名
提权:sudo命令
虚拟用户:
与真实的普通用户区分开。这类用户最大的特点就是安装系统后默认就会存在,且默认情况下,大多数不能登录系统。执行一些服务需要服务,用虚拟用户来执行。安全性提高。
虚拟用户角色---傀儡:
linux安全优化:
1. 安装系统后可以删除用不到的虚拟用,但是最好是用注释的方法,万一有问题可以恢复过来。
2. 我们自己不熟服务的时候,也可以创建虚拟用户。-s /sbin/nologin
UID整数范围 |
具备该ID的特性 |
|
0 |
超级用户root |
当用户的UID为0时,表示这个账号为超级管理员账号,如果要增加一个系统管理员账号的话,只需要将UID改为0即可。不推荐这样做。 |
1-499 |
虚拟用户(为软件服务) |
这个范围时保留给系统使用的UID,之所以这样划分,是为了防止认为建立账号的UID和系统UID之间冲突。并没有其他特殊含义 |
500-65535 |
普通用户 |
普通账户UID,当使用useradd aige建立时,默认情况下UID时从500开始的。-u指定UID |
2.2 配置文件/etc/passwd /etc/shadow /etc/group /etc/gshadow
2.2.1 /etc/passwd:
文件中每一列含义 |
||||||
root |
x |
0 |
0 |
root |
/root |
/bin/bash |
用户名 |
密码 |
UID |
GID |
解释 |
家目录 |
shell解释器 |
第3章 文件三种时间
Access:访问时间
Modify:修改时间
Change:属性改变时间
查看用stat 命令即可
find三个参数 -mtime -ctime -atime对应三个时间戳
第4章 通配符
符号 |
作用 |
* |
匹配任何字符串/文本,包括空字符串 *代表任意字符(0个或多个) |
? |
匹配任何一个字符(不在括号内时) ?代表任意一个字符 |
字符集合(一堆字符/文本) |
|
[abcd] |
匹配abcd中任何一个字符 |
[a-z] |
表示范围a到z,-表示范围的意思 []匹配中括号中任意一个字符 |
{...} |
表示生成序列,以逗号分隔,且不能有空格 |
补充 |
|
[!abcd] |
或[^abcd]表示非,表示不匹配括号里面的任何一个字符 |
1 [[email protected] 20170118]# ls 2 3 oldboy00.log oldboy04.log oldboy08.log stu00.txt stu04.txt stu08.txt 4 5 oldboy01.log oldboy05.log oldboy09.log stu01.txt stu05.txt stu09.txt 6 7 oldboy02.log oldboy06.log oldboy10.log stu02.txt stu06.txt stu10.txt 8 9 oldboy03.log oldboy07.log oldboy.txt stu03.txt stu07.txt stu.txt 10 11 [[email protected] 20170118]# ls old* 12 13 oldboy00.log oldboy02.log oldboy04.log oldboy06.log oldboy08.log oldboy10.log 14 15 oldboy01.log oldboy03.log oldboy05.log oldboy07.log oldboy09.log oldboy.txt 16 17 [[email protected] 20170118]# ls stu.??? 18 19 stu.txt 20 21 [[email protected] 20170118]# ls oldboy0[12345]* 22 23 oldboy01.log oldboy02.log oldboy03.log oldboy04.log oldboy05.log 24 25 [[email protected] 20170118]# 26