18、linux文件属性
文件的描述信息;
[root@centos6 /]# ls -lih
总用量 118K
3538945 drwxr-xr-x 3 root root 4.0K 8月 23 17:12 app
3276818 -rw-r--r-- 1 root root 22 8月 27 16:47 a.txt
18.1、linux文件属性详解:
linux文件属性共有10列;
18.1.1、第1列:
inode索引节点编号,先读inode编号(类似于人的身份证,全国唯一);
磁盘被分区并格式化为ext4/ext4文件系统会生成一定数量的inode和block,不同硬盘分区是独立的所以可能会有相同的inode标记;
一个文件被创建只有唯一的inode和至少一个block且只属于当前的文件(文件名———>inode————>block;
18.1.1.1、inode介绍:
inode为索引节点,表现形式是一串数字,它的作用是存放文件的属性信息以及作为文件的索引,指向文件实体,是唯一的;
inode是一块存储空间,默认是256Byte;
一个文件只占用一个inode
inode相同的文件互为硬链接文件,可以认为是一个文件不同的访问入口;
18.1.1.2、block
ext3\ext4文件系统的block存放的是文件的实际内容,block的大小是1kB,2KB、4kB(常用),其中引导分区的block占1kB,
如果一个文件很大,可能占多个block,如果文件很小,至少占一个,并且剩余的空间浪费了,且不能存放其它的数据了。
block数量大于inode数量;
磁盘读取数据是按block读取的,每读取一次block就会消耗一次io;
block应该尽量大,但时太大时,对于小文件存放就会太浪费磁盘空间;
根据业务需求设置block的大小,大文件设置大一点,小文件设置小一点;
block太大:例如4k,文件都是0.1k,大量浪费磁盘空间,但是访问性能高;
block太小:列如 1k,文件都是100k,会消耗大量的磁盘io;
企业里文件都会比较大(一半都会大于4k),block设置大一些会提升磁盘的访问效率;
ext4/ext3文件系统(CentOS5 CentOS6)都是4k;
18.1.1.3、企业面试题:
磁盘性能会很高;
可以写入1M文件的的数量为100000/4/1024/4=97,磁盘的io性能会很低;
18.1.1.4、企业中出现什么情况会出现inode用完:
比一个block空间小的文件特别多(一个文件只有一个inode,最少一个block(只属于该文件),所以block比inode多);
磁盘空间是否满了,是有两项决定的,由inode和block满了,任何一项满了,都不能存放文件;
查看硬盘的使用量:df -h
查看inode的使用量:df -i
查看挂载磁盘的inode和block的大小和总量(dumpe2fs:查看文件系统的元数据)
dumpe2fs /dev/sda2 | egrep -i "block count| inode count"
dumpe2fs /dev/sda2 | egrep -i "block size|inode size"
如何查看inode字符串
stat /etc/hosts
ls -i
18.1.2、第2列:
文件的类型以及权限,共11个字符,第1个字符是文件类型,后9个字符是文件的权限,最后一个“.”和selinux有关(selinux开启时,创建的文件带'.')
linux中一切皆文件
d:表示一个目录:
tree -Ld 1 / (d:只显示目录)
-:表示一个普通的文件:
纯文本文件
文件内容可以直接读到数据,列入:字母,数字,可以用cat直接读取文件,配置文件
二进制文件:
linux中的命令程序文件;
数据格式文件:
/var/log/wtmp
查看文件属于哪一种普通文件:
file + 文件名
last:查看当前用户的登录信息,对应的是/var/log/wtmp数据文件
lastlog:查看所有用户最近的登录信息,对应的是/var/log/lastlog 文件
18.1.2.1、文件后面跟的后缀:
.tar未压缩,.tar.gz、.tgz、.zip、.tar.bz表示压缩的包
.sh表示shell脚本文件,
.pl表示pl语言
.py表示python语言
.html\.htm\.php\.jsp\.do表示网页语言文件
.conf表示系统配置文件
.rpm表示rpm安装包文件
18.1.2.2、文件的权限:
rwx r-xr-x:
(12位权限,3个是特殊权限)前三位属主权限,中间三位属组权限,最后面三位其他用户权限 ,r:读 4、w:写 2,x:执行 1,-:没有权限 0
18.1.2.3、用户和组:
用户:用户UID (0-65535),相当于我们的身份证一样,唯一,用户名就是我们的名字
18.1.2.4、linux用户分类:
超级用户:root用户,uid和guid均为0;
普通用户:只能操作自己家目录中的文件,其余文件只能查看
18.1.2.5、普通用户提权
su - root
sudo ls
18.1.2.6、虚拟用户:
安装系统后默认就存在,且默认情况不能登录系统,主要目的是满足方便管理,满足相应的系统进程对文件属主的要求;
18.1.2.7、/etc/passwd 用户配置文件:
:x表示在密码在 /etc/shadow 中保护起来
18.1.2.8、etc/shadow文件每一行的格式如下:
1.帐号名称:由于密码也需要与帐号对应啊~因此, 这个档案的第一栏就是帐号,必须要与 /etc/passwd 相同才行!
2. 密码:这个才是真正的密码,而且是 经过编码过的密码啦! 你只会看到有一些特殊符号的字母就是了!需要特别留意的是, 虽然这些加密过的密码很难被解出来,但是‘很难’不等于‘不会’,所以,
这个档案的预设属性是‘-rw-------’或者是‘-r--------’,亦即只有 root 才可以读写就是了!你得随时注意,不要不小心更动了这个档案的属性呢!另外, 如果是在密码栏的第一个字元为‘ * ’
或者是‘ ! ’,表示这个帐号并不会被用来登入的意思。 所以万一哪一天你的某个使用者不乖时,可以先在这个档案中,将他的密码栏位的最前面多加一个* !嘿嘿!他就无法使用该帐号啰!直到他变乖了,
再给他启用啊!
3. 最近更动密码的日期:这个栏位记录了‘更动密码的那一天’的日期, 不过,很奇怪呀!在我的例子中怎么会是 12959 呢?呵呵,这个是因为计算 Linux 日期的时间是以 1970 年 1 月 1 日作为 1 ,
而 1971 年 1 月 1 日则为 366 啦! 所以这个日期是累加的呢!得注意一下这个资料呦!那么最近的 2005 年 1 月 1 日就是 12784 啦,瞭解了吗?
4. 密码不可被更动的天数: 第四个栏位记录了这个帐号的密码需要经过几天才可以被变更!如果是 0 的话, 表示密码随时可以更动的意思。这的限制是为了怕密码被某些人一改再改而设计的!
如果设定为 20 天的话,那么当你设定了密码之后, 20 天之内都无法改变这个密码呦!
5. 密码需要重新变更的天数: 由于害怕密码被某些‘有心人士’窃取而危害到整个系统的安全,所以有了这个栏位的设计。 你必须要在这个时间之内重新设定你的密码,否则这个帐号将会暂时失效。
而如果像上面的 99999 的话,那就表示,呵呵,密码不需要重新输入啦! 不过,如果是为了安全性,最好可以设定一段时间之后,严格要求使用者变更密码呢!
6. 密码需要变更期限前的警告期限:当帐号的密码失效期限快要到的时候, 就是上面那个‘必须变更密码’的那个时间时, 系统会依据这个栏位的设定,发出‘警告’言论给这个帐号,提醒他‘再过
n 天你的密码就要失效了,请尽快重新设定你的密码呦!’,如上面的例子,则是密码到期之前的 7 天之内,系统会警告该用户。
7. 密码过期的恕限时间:如果用户过了警告期限没有重新输入密码, 使得密码失效了,也就是说,你在‘必须变更密码的期限前,并没有变更你的密码!’ 那么该组密码就称为‘失效的密码’啰~怎么办?
没关系,还有这个栏位的天数设计啊~ 意思就是说,当密码失效后,你还可以用这个密码在 n 天内进行登入的意思。 而如果在这个天数后还是没有变更密码,呵呵!那么您的帐号就失效了!无法登入!
8. 帐号失效日期:这个日期跟第三个栏位一样,都是使用 1970 年以来的总日数设定。这个栏位表示: 这个帐号在此栏位规定的日期之后,将无法再使用。 这个栏位会被使用通常应该是在‘收费服务’
的系统中, 你可以规定一个日期让该帐号不能再使用啦!
9. 保留:最后一个栏位是保留的,看以后有没有新功能加入。
例如: llc1:$6$1XHri1/k$TpA9UlNNjm0zvBoVlt6tgLH8POk62cIvJnW25i/l2Ka/ODQS4TQjf26rHfq8A9y1TOxmzzynWJg30zBp2Oc/H.:17787:0:99999:7:::
18.1.2.9、组:
组:组GID(0-65535),相当于人的家庭,或者是学校唯一
组GID整数范围和用户UID整数范围类似;
/etc/group:组文件
lc:x:500:
lc:组名
x:组密码文件/etc/gshadow
500:组的GID
:加入组的用户,(显示该组的非主组用户)
etc/gshadow 格式如下,每个用户组独占一行;
groupname:password:admin,admin,...:member,member,...
1) 组名: 是用户组的名称,由字母或数字构成。
2) 口令:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码
3) 组管理者:这个字段也可为空,如果有多个用户组管理者,用,号分割
4) 组内用户列表:如果有多个成员,用,号分割(显示该组的非主组用户) ;
18.1.2.10、小结:
创建用户后就会给该用户被分配唯一个uid,和gid,默认uid和组id相同(500以后开始),组名称就是用户的名称;
一个文件只能有唯一一个属主,但可有多个属组;
创建用户的时候也可以不创建组(单独创建组,GID也是从500以后开始);
l:表示一个软链接文件,指向另一个文件
b:表示块设备(磁盘,光驱设备)和其它外围设备,是特殊类型的文件
c:表示字符设备文件
s:表示socket文件
p:表示管道文件
18.1.3、第3列:
硬链接的数量,有备份的作用(类似于超市里多个门);
在linux系统中,链接可以分为两种,一种是硬链接,另一种是软链接;
18.1.3.1、硬链接(只限文件之间):
ln 源文件,目标文件
[root@centos6 ~]# ln b c
[root@centos6 ~]# ls -li
总用量 56
3276813 -rw-r--r-- 2 root root 5 8月 28 17:10 b
3276813 -rw-r--r-- 2 root root 5 8月 28 17:10 c
类型前面没有符号标记
相同的inode节点号的多个文件(就是同一个文件,block相同),不可以跨越分区系统;
删除硬链接文件或者删除源文件任意之一,文件实体并未被删除
只有删除了源文件以及所有对应的硬链接文件,文件实体才会被删除,被系统回收
硬链接文件就是文件的另一个入口(相当于超时的前门,后门一样)
可以同过给文件设置硬链接文件,来防止重要文件被误删
硬链接是普通文件,可以用rm进行删除
对于静态文件(没有进程调用的时候),当对应硬链接数为0,文件就被删除了
文件删除的原理
在linux系统中,删除静态文件(即没有进程调用)条件是与之相关的所有的硬链接文件均被删除;
i_link:硬链接数量,i_count:正在访问的进程
正在访问文件删除的时候,空间不会被释放,需要重启服务才能释放空间(如果要删除正在访问的文件最好是清空该问价,>)
yum install httpd -y:安装httpd协议
service httpd start :启动httpd服务
ps -ef |grep "httpd":进程
netstat -lntup |grep "httpd":查看端口号
lsof i:80:查看端口号
lsof |grep del :查看删除的文件
du -sh \*:查看根目录下所有文件的大小
18.1.3.2、软链接(只限目录和目录,文件和文件之间的链接):
ln -s 源文件,目标文件
软链接就是为目标文件创建了一个快捷方式,和源文件对应不同的inode,是不同的文件,可以跨越分区系统;
文件的类型前面是'l'
可以通过readlink 查看软连接
删除软链接文件,源文件依然存在;删除源文件,软链接文件依然存在,但是会有白字红底的闪烁提示
软链接可以看做是一个文件,删除时要按照文件的删除方式进行(如果是目录的链接时,如果按照目录的删除方式进行删除会导致源目录内容删除);
软链接文件类型为‘l’,可以使用rm进行删除
企业中使用软链接迁数据,速度快
18.1.3.3、目录问题:
目录可以挂接到不同的硬盘和分区
每个目录下面都有一个硬链接“.”号,和对应上级目录的硬链接“..”
在父目录里创建一个子目录,父目录的链接数增加1(子目录理由)
软链接是一个文件
[root@centos6 b]# ls -lid /a
2228226 drwxr-xr-x 3 root root 4096 8月 28 20:12 /a
[root@centos6 b]# ls -lid /a /a/. /a/b/..
2228226 drwxr-xr-x 3 root root 4096 8月 28 20:12 /a
2228226 drwxr-xr-x 3 root root 4096 8月 28 20:12 /a/.
2228226 drwxr-xr-x 3 root root 4096 8月 28 20:12 /a/b/..
18.1.4、第4列:文件或目录的所有者(属主)
18.1.5、第5列:文件或目录所属的组(属组)
18.1.6、第6列:文件的大小
18.1.7、第7,8, 9列:文件或目录的修改时间,默认是月日时分
modify:修改文件内容
change time:修改文件属性的时间
access time:文件访问的时间
--time-style=long-iso:显示文件的长格式
[root@centos6 ~]# ls -lih --time-style=long-iso
3276809 -rw-------. 1 root root 1.2K 2018-08-10 05:35 anaconda-ks.cfg
18.1.8、第10列:文件名,不算文件的属性
文件名,在block中,文件,上级目录之中;
18、linux文件属性的更多相关文章
- Linux学习之CentOS(四)----Linux文件属性、所有者、群组、其他组及文件权限操作简要总结
Linux文件属性.所有者.群组.其他组及文件权限操作简要总结 首先介绍一个重要的知识点:文件属性控制权限 [root@www ~]# ls -al total 156 drwxr-x--- 4 ro ...
- Linux文件属性及权限
一.Linux文件属性: 例如: drwxr-xr-x 2 hdy hdy 4096 11月 28 00:18 桌面 drwxr-xr-x 2 hdy hdy 4096 11月 28 00:18 桌面 ...
- Linux 文件属性及权限_007
Linux一切皆文件: Llinux系统的文件或目录的属性主要包括:索引节点.文件类型.文件权限.链接数.所属的用户和用户组.最近修改时间等. Llinux文件属性及权限图形说明: Linux文件属性 ...
- linux 文件属性与权限
内容源于: 鸟哥的linux私房菜 链接如下: Linux 的文件权限与目录配置 Linux 磁盘与文件系统管理 Linux 文件与目录管理 目录 Linux文件属性 [文件属性解析(SUID/SGI ...
- linux文件属性详细说明
1. Linux 文件属性概说: Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容: [root@localhost ...
- linux文件属性权限相关
一个linux目录或者文件,都会有一个所属主和所属组. 所属主,即文件的拥有者,而所属组,即该文件所属主所在的一个组. linux文件属性 包括文件类型 - d l b c s 依次表示 普通文件 ...
- Linux文件属性,类型,ls -lhi解释行列
Linux文件属性(描述信息) -i inode节点号 -h 人类可读 ls -lhi 1703938 drwxr-xr-x 2 rsync rsync 4.0K Jun 7 07:24 gamese ...
- Linux 文件属性及修改权限
输入 ll 或 ls -l 命令显示当前目录中文件的属性及文件所属的用户和组 root@user:/home/www# ll test total 880 drwxr-xr-x 2 root root ...
- Linux文件属性与权限
一.在Linux里面,任何一个文件都具有“User,Group,Others”(用户.用户组.其他人)三种身份 二.用户组最有用的功能之一,就是当你在团队开发资源的时候,且每个账号都可以有多个用户组的 ...
随机推荐
- 用JIRA管理你的项目——(三)基于LDAP用户管理
JIRA提供了基于LDAP方式的用户管理,也就是用户密码的管理交给LDAP,而JIRA只管理用户在系统中的角色. 要打开JIRA的LDAP设置,首先需要验证下你的LDAP服务是否正常! 几乎有所有的L ...
- [笔记] 《c++ primer》显示器程序 Chapter7
补充Sales_data没有体现出的其他类特性 Screen.h 1 #include <string> 2 #include <iostream> 3 4 class Scr ...
- 用python输出未来时间,递增
输入当前时间,之前与之后的365天时间日期 按格式化输出 #!/usr/bin/evn python # -*- coding: UTF-8 -*- # import time import date ...
- nohup 命令 2>&1 |tee lmbench.log & 只适用没有需要敲y或x的
nohup make results 2>&1 |tee lmbench.log & nohup 命令 2>&1 |tee lmbench.log & 只适 ...
- WPS2019党政机关单位版(无广告困扰)
WPS2019党政机关单位版(无广告困扰) 科技趣闻 中国石油大学(华东) 控制科学与工程硕士 17 人赞同了该文章 导读 WPS Office 2019专业版机关版是由WPS官方专为企业.机关单 ...
- Linux进阶之TCP三次握手四次挥手
TCP(Transfer control protocol)传输控制协议 一.两种传输模式: TCP面向有连接 可靠 常用于点对点 微信 UDP面向无连接 高速 常用于点对面 直播 二.数据方向: 在 ...
- visual studio code 快捷键-(转自 浅笑千寻)
Visual Studio Code之常备快捷键 官方快捷键大全:https://code.visualstudio.com/docs/customization/keybindings Visual ...
- 6.3-4 zip、unzip
zip:打包和压缩文件 zip压缩格式是Windows与Linux等多平台通用的压缩格式.和gzip命令相比,zip命令压缩文件不仅不会删除源文件,而且还可以压缩目录. zip命令的参数选 ...
- Windows上能看朋友圈的微信来了 | 附下载地址
昨天的时候,电脑端的微信提示更新就顺手更新了一下,更新完成后习惯性的点了下设置,纳尼,居然被灰到了测试版本? 带着好奇,赶快看了下更新了什么内容: 支持浏览朋友圈 "搜一搜"支持搜 ...
- Autofac 集成测试 在 ConfigureContainer 之后进行 Mock 注入
在使用 Autofac 框架进行开发后,编写集成测试时,需要用 Mock 的用于测试的模拟的类型去代替容器里面已注入的实际类型,也就需要在 Autofac 完全收集完成之后,再次注入模拟的对象进行覆盖 ...