第二章 文件、目录管理(下)

一、隐藏权限lsattr_chattr

二、特殊权限

三、软链接文件

四、硬链接文件

五、find命令

六、文件名后缀

七、Linux和Windows互传文件

一、隐藏权限lsattr_chattr

1.1 chattr命令:change attribute

格式:chattr [+-=][Asaci] [文件或者目录名]

+、-、=表示增加、减少和设定。

+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。

选项:

A:增加该属性后,表示文件或目录的atime (access time)不可被修改(modified), 可以有效预防例如手提电脑
磁盘I/O错误的发生。

s:增加该属性后,会将数据同步写入磁盘中

a:即append,增加该属性后,表示只能追加不能删除,非root用户不能设定该属性。多用于服务器日志文件安全

c:即compresse,增加该属性后,表示自动压缩该文件,读取时自动解压

i:增加该属性后,表示文件不能删除、修改、重命名、设定链接

常用的是a和i选项。

注:

①给目录增加i权限后,即使是root账户,也不能在目录中创建或删除文件;

②给目录增加a权限后,只能创建文件,不能删除文件(a权限不能修改原文件,可以创建和追加)

1.2 lsattr命令:list attribute,该命令用于读取文件或目录的特殊权限

格式:lsattr [-aR] [文件或者目录名]

选项:

-a:类似于ls的-a选项,即连同隐藏文件一同列出

-R:递归列示目录及文件属性

二、特殊权限

2.1特殊权限set uid:简称SUID。该权限针对二进制可执行文件,使文件在执行阶段具有文件所有者的权限。比如passwd这个命令就具有该权限,当普通用户只需passwd命令时,可以临时获得root权限,从而可以修改密码。

密码的存放文件其实是/etc/passwd与/etc/shadow,它们的拥有者是root。在这个权限中,仅有root可以强制写入。一个普通用户Linux01去更新自己的密码时,使用的就是/usr/bin/passwd程序,却可以更新成功,而/usr/bin/passwd的拥有者是root。那么,就是说Linux01这个普通用户可以访问/etc/shadow密码文件这既是因为有s权限的帮助。当s权限在user的x时,称为Set UID,简称SUID,这个UID表示User的ID,而User表示这个程序(/usr/bin/passwd)的拥有者(root)。所以,当Linux01用户执行/sur/bin/passwd时,他就暂时获取文件拥有者root的权限。

注:SUID仅可用在二进制文件(binary file),而且对目录无效。

2.2特殊权限set gid:可以应用在文件上同样可以作用在目录上。设置在文件上时,功能和set_uid类似,前提这个文件必须是可执行的二进制文件,它会使文件在执行阶段具有文件所属组的权限。若目录被设置这个权限后,任何用户在此目录下创建的文件或者目录都具有和该目录所属组相同的组。

2.3特殊权限sticky_bit:可以理解为防删除位。SBit一般用于目录上,对文件的意义不大。SBit对目录的作用是:在具有SBit的目录下,用户若在该目录下具有w及x权限,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权利删除。SBit可以理解为防删除位。如果希望用户能够添加文件但同时不能删除文件,则可以对文件使用SBit位。设置该位后,就算用户对该文件的父目录具有写权限,也不能删除文件。

三、软链接文件

3.1"软链接"(soft link)或者"符号链接(symbolic link)。

软链接是建立一个独立的文件,当读取这个链接文件时,它会把读取的行为转发到该文件所链接的文件上。

使用ln命令建立链接:格式: ln 【-s】 来源文件 目的文件。常用选项是-s。如果不加-s就是建立硬链接,加了-s是建立软链接。

3.2软链接特点

①做软链接时,尽量使用绝对路径

②删除源文件,则不能读取软链接文件,但不会对软链接文件造成影响;删除软链接文件,源文件不会被删除,但是再次打开源文件时,会显示无法打开文件;

③可以软链接文件、目录、也可以跨分区进行软链接

四、硬链接文件

4.1硬链接(hard link):当系统要读取一个文件时,会先读inode信息,然后再根据inode中的信息到块区域将数据取出来。而硬链接是直接再建立一个inode链接到文件放置的块区域,即进行硬链接时文件内容没有任何变化,只是增加了一个指向这个文件的inode,并不会额外占用磁盘空间。

使用ln命令建立链接:格式: ln  来源文件 目的文件

4.2硬链接特点:

①做硬链接时,只是增加了一个指向这个文件的inode,并不会额外占用磁盘空间;

②不能硬链接目录;

③不能跨分区进行硬链接,因为每个分区有不同的inode table;

扩展:

一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许多个文件名指向同一个inode号码。这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。

五、find命令

5.1 which命令

which命令可以查找某个命令的绝对路径,但是只能查找PATH环境变量中出现的路径下的可执行文件。

5.2 whereis命令

whereis命令通过预先生成的一个文件列表库查找与给出的文件名相关的文件。

格式:whereis 【-bms】【文件名称】

选项:-b:之查找二进制文件

-m:只查找帮助文件(在man目录下的文件)

-s:只查找源代码文件

特点:类似于模糊查找

5.3 locate命令

locate命令类似whereis命令,通过预先生成的一个文件列表库查找与给出的文件名相关的文件。

格式:locate 【文件名称】

安装命令:#yum install -y mlocate

特点:①安装后,初次运行locate命令会报错,这是因为系统里还没生成那个文件列表库,需要使用updatedb命令立即生成(或更新)这个库;

②locate 命令所搜索到的文件列表,不管是目录名还是文件名,只要包含我们要搜索的关键词,都会列出来,所以locate不适合精准搜索。

5.4 find命令

格式:find【路径】【选项】【参数】

5.4.1常用参数

-atime +n/-n:表示访问时间大于或小于n天的时间;

-ctime +n/-n:表示写入、更改inode属性(如更改所有者、权限或者链接)的时间大于或小于n天的文件;

-mtime +n/-n:表示写入时间大于或小于n天的文件(修改的是内容)。这里-mtime可以使用-mmin表示分钟

可以使用stat命令来列出文件的三个time

5.4.2常用选项

-name filename:表示直接查找该文件名的文件;

-type filetype:表示通过文件类型查找文件。

5.4.3文件类型

-(f):表示普通文件;

d:表示目录;

s:socket

b:块设备;

c:字符设备(U盘等);

l:链接文件;

p:管道文件

5.5 扩展

5.5.1快捷键:

Ctrl+U 自光标位置向前删(一个个删)

Ctrl+D 自光标位置向后删(一个个删)→在行内有字符的情况下向后删,没有字符的情况下退出(exit)

Ctrl+E光标移到最前后面

Ctrl+A光标移到最前面

5.5.2 inode

inode(索引节点)用来存放档案及目录的基本信息,包含时间信息、文档名、所有者以及所属组。可以通过命令#df -i来查看各个分区的inode总数以及使用情况。

六、文件名后缀

6.1在Linux中,文件的后缀名没有具体意义,加或者不加都无所谓。但是为了便于区分,在定义文件名时加一个后缀名,在看到这个文件名时,就会很快知道它到底是一个什么样的文件。

6.2例:1.sh:表示shell脚本;2.tar.gz表示压缩包;my.cnf代表他是一个配置文件;test.zip代表它是一个压缩文件。

七、Linux和Windows互传文件

7.1想要实现Linux与Windows之间文件互传,需要使用远程连接工具Xshell(Putty不行)

7.2 lrzsz命令,安装命令:#yum install -y lrzsz

7.3Linux传到Windows:#sz 文件名→选择保存路径;

7.4Windows传到Linux:@rz →选择Windows的文件,传到当前目录下。

猜你喜欢

转载自blog.csdn.net/dwy2018/article/details/81322922