- 一、隐藏权限lsattr/chattr
- 二、特殊权限set_uid
- 三、特殊权限set_gid
- 四、特殊权限stick_bit
- 五、软链接文件
- 六、硬连接文件
- 七、find命令
- 八、文件名后缀
- 九、linux和windows互传文件
一、lsattr_chattr
1、设置隐藏权限的命令chattr
a、添加隐藏权限i
1. 不能编辑,
2. 不能追加,
3. 不能改名,
4. 不能删除,
5. 不能保存,
6. 不能touch(touch会更改文件的创建时间)
b、 删掉隐藏i
权限
c、隐藏权限a
的增加chattr +a 1.txt
及删除a
权限chattr -a 1.txt
1. 可以追加,
2. 可以touch,
3. 不能删除,
4. 不能更改,
5. 不能重命名
chattr +i 111(目录)
1. 能在目录下写已经存在的文件
2. 不能删除
3. 不能改名
4. 不能在目录下创建文件目录
1. chattr +a 111(目录)
2. 可以追加
3. 不能更改
4. 可以在目录下touch
5. 可以更改文件下内容
d、查看隐藏权限的命令lsattr
lsattr是查看的子目录的隐藏权限
如果查询目录本身为`lasttr -d 111(文件夹)`
查看111下面的子目录及子目录下面的文件的隐藏权限`lsattr -R 111`
表示全部包括隐藏文件`lsattr -a 111`
二、特殊权限set_uid(所有者权限位上u
)
set_uid是保证普通用户临时拥有所有的者身份(临时拥有)必须是二进组,可执行文件比如 /usr/bin/passwd
chmod u+s /usr/bin/ls 注:u
为所有者权限 大S是因为缺少X权限
目录能加S权限但是无意义
三、特殊权限set_gid(所属组权限位上g
)
set_gid是保证普通用户临时拥有所属组的身份(临时拥有)必须是二进组,可执行文件比如 /usr/bin/ls
chmod g+s /usr/bin/ls
可以作用在目录上
当给目录设置了set_gid
后再目录下创建文件及目录会跟着父级目录的所属组保持一致
四、特殊权限stick_bit (防删除其他用户)
防止别人删除自己的人间(root)除外
/tmp/目录下可以改别人的文件不能删除
/tmp/目录是带stick_bit
权限的,删除文件目录是看父级目录的权限
五、软链接文件(ln -s)
软连接用法,ln -s 源文件写在前 需要连接的文件写到后面
目录也可以软链接
注意:如果更改文件名或者原文件不在了就会出错,
做软链接的时候尽量使用绝对路径
例子:
通过软链接的方式让持续写的日志更换地方存储
六、硬连接文件(ln)
注意
硬链接不支持对目录做硬链接
硬链接不支持跨分区做硬链接
硬链接用法ln 源文件 目标文件
七、find命令
which +命令 #搜索环境变量文件夹命令的位置 whereis +命令 #也是搜索命令在那里,在事先准备的文件库 到库里面去找 locate 不常用 locate安装:yum install -y mlocate locate用法:locate +文件名/命令 先要去遍历文件 生成数据库 生成数据库命令:updatedb
快捷键:
- Ctrl+l 清屏
- Ctrl+d 退出终端
- Ctrl+c 终端任务
- Ctrl+u 删除光标前面的内容
- Ctrl+e 光标移到末尾
- Ctrl+a 光标移动到开头
- find命令
- find /etc/ -name "文件名"
- find /etc/ -type d -name "文件名" 指定路径,-type d 指定搜目录 -name "名字"指定目录名字
- find /etc/ -type f -name "文件名"
指定路径,-type f 指定搜文件 -name "名字"指定文件名字
- d:目录 f: 文件 l:软连接 s :sock文件 c:字符串文件 b:块社保
stat 查看文件的信息用法如下
文件的名字、大小、io块、文件类型、inode号、硬链接数量、 最近访问:Access atime 最近更改:Modify mtime 最近改动:Change ctime 更改文件内容会变:最近更改:Modify mtime/最近改动:Change ctime 更改文件权限会变:最近改动:Change ctime 访问文件内容会变:最近访问:Access atime
- find / -tyep -name -mtime -ctime -atime
- find / -type f -mtime(最近改动) -1(1天以内) +1(大于1天)
- find /etc/ -type f -mtime -1 -name "*.conf"
为并且的关系 在目录下并且是文件并且最近改动在1天以内并且是*.conf
- 用-o表示或者
- find /etc/ -type f -o -mtime -1 -o -name "*.conf"
用find找硬链接
用ls -i 文件名查到inode号
- find / -inum 1312999
- find /root/ -type f -mtime -1(1天以内) +1(1天以前) -mmin -60(最近1个小时)
需求:在find的同时列出是不是最近1个小时内的访问
- find /root/ -type f -mmin -60 -exec ls -l {} ;
注意:{}表示文件列表,出来很多项每个文件执行ls -l
实验:
find /root/ -type f -mtime -1 -exec mv {} {}.bak \; 对文件重命名
find /root/ -type f -mtime -1 查出文件
场景:需求找出一部分文件→列出来 挪到另外文件夹下去
实验:找出文件小于10k的文件
- find /root/ -type f -size -10k
核实一下是不是小于10k
确实是小于10k 、686为686字节
find -type -name -mtime -atime -ctime -size -o -exec
八、文件名后缀
Linux中对文件名后缀并没有严格的要求,可以随意
但是一般默认形成规范如txt为文本,log为日志,.conf为配置文件
九、linux和windows互传文件
前提是使用Xshell
安装:``yum instart lrzsz`
sa 文件名
rz windows上的文件传到Linux上,是传到当前目录
总结
一、inode是什么?
理解inode,要从文件储存说起。
文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,
即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,
最常见的是4KB,即连续八个 sector组成一个 block。
文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,
比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,
中文译名为"索引节点"。
- inode包含的信息
每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。
二、inode的内容
inode包含文件的元信息,具体来说有以下内容:
* 文件的字节数
* 文件拥有者的User ID
* 文件的Group ID
* 文件的读、写、执行权限
* 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,
atime指文件上一次打开的时间。
* 链接数,即有多少文件名指向这个inode
* 文件数据block的位置
inode里没有保存文件名,但是改变文件名会改动ctime
是为了防止一些依赖ctime的增量备份出问题,系统发生的强制改变。
- 文件名是保存在目录文件中
目录文件
Unix/Linux系统中,目录(directory)也是一种文件。打开目录,实际上就是打开目录文件。
目录文件的结构非常简单,就是一系列目录项(dirent)的列表。每个目录项,由两部分组成:
所包含文件的文件名,以及该文件名对应的inode号码。
常用及重要的知识点
- find
- 隐藏权限
- 软链接
- 互传文件