2018-05-14 第三课任务笔记
2.17修改文件的特殊属性
1.chattr 设置隐藏特殊权限
命令格式:chattr[+-=] 选项 文件或目录
chattr (+-=)表示增加,减少,设定,
选项:常用参数a,i,
a表示只能追加不能删除,非root用户不能设定该属性;
i表示该文件不能删除,重命名,设定链接,写入及新增数据。
A表示增加该属性后,文件或目录的atime将不可更改。
实例:
[[email protected] /]# mkdir test
[[email protected] /]# chattr +i test
[[email protected] /]# touch test/1.txt
touch: 无法创建"test/1.txt": 权限不够
[[email protected] /]# ls -ld test
[[email protected] /]# chattr -i test
[[email protected] /]# touch test/1.txt
2.lsattr
命令格式:lsattr 选项 文件或目录
lsattr[-aRd]查看文件或目录的特殊权限
-a表示隐藏文件一同列出,-R表示连同子目录的数据一同列出,
-d查看目录本身
2.18特殊权限set_uid
作用:该权限使文件(二进制且可执行文件)在执行阶段具有文件的所有者的权限 (可以让非所有者账户临时具有所有者身份)
如何辨别二进制文件:
[[email protected] ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
上述命令s为set _uid权限,当普通用户临时拥有该命令所有者身份,该文件必须是二进制可执行文件。
命令格式:set_uid 权限:chmod u+s “文件”
例子:
[[email protected] ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[[email protected] ~]$ su - root
[[email protected] ~]# chmod u+s /usr/bin/ls
[[email protected] ~]# su – aming
[[email protected] ~]$ ls /root/
anaconda-ks.cfg initial-setup-ks.cfg
anaconda-ks.cfg.1
有时候set_uid的权限为大写的S不是小写的s,这是因为该文件没有x权限所致。
2.19特殊权限set_gid
作用在二进制可执行文件上,也可以作用在目录上。
当作用在文件上时,其功能和set_uid一样。
当作用在目录上时,任何用户在此目录下创建的文件都具有和该目录所属组相同的组(已经存在不会改变)。
命令格式:chmod g+s “文件或目录”
2.20特殊权限 sticky_bit
作用:防删除位(只针对目录)。
命令格式:chmod o+t “目录”
默认情况下只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置防删除位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。实际应用中,防删除位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。
2.21软链接
软链接也称为符号链接,即“symbolic links/soft links”,是一个通过名称指向另一个不同文件的特殊的文件类型,是一个单独的文件,有着不同于原文件(目标文件)的属性,相当于Windows系统中的快捷方式。当对软链接进行大多数操作(包括打开、读取、写入等等)时,系统内核会自动在软链接的目标文件上执行;但某些操作,例如删除,会直接对链接文件本身操作。
做软链接时,建议尽量使用绝对路径。
/bin 相当于快捷方式,usr/bin才是它真正的目录。
软链接文件大小和文件的路径大小有关,映射的路径越大,文件越大。
软链接创建命令格式:ln –s 源文件 目标文件(目标文件相当于快捷方式)
软链接特性:
1.软链接特性:软链接和目标文件不是同一个文件,节点号不同。
2.目标文件的删除操作会影响软链接文件。当链接文件被删除时,不会对目标文件产生影响;当删除目标文件/目录时,由于失去了目标指向,软链接会失效,变成死链。
3.能跨分区创建软链接。(使用命令 #df -h 查看分区的大小是使用情况的时候,挂载点那一行就是分区。
2.22硬链接
硬链接:其本质为现有文件的另一个名字,因此硬链接和原文件是无法区分的。
硬链接创建命令格式:ln 源文件 目标文件
特点:
1.创建一个文件,这个文件和另外一个文件的inode号一样,那么这两个文件相互为硬链接文件。
2.只能对文件做硬链接,不能对目录做硬链接。
3.不能跨系统分区创建硬链接。
4.只能对已存在的文件进行创建。
5.删除一个硬链接文件并不影响其他有相同inode号的文件。
2.23find
1.根据文件名搜索
命令例子:#find /etc/ -name “文件名”
2.根据文件类型搜索
命令例子:#find /etc/ -type d
3.
-mtime (修改内容)m,modify
-ctime(写入,更改inode属性(如更改所有者、权限或者链接))c,change
-atime(访问)a,access
更改了文件内容,ctime一定会变化。
查看文件三个时间命令:stat “文件”
用法:-mtime/-ctime/-atime +n/_n 表示大于或小于n天的对应条件。
命令举例:#find /etc/ -type f –ctime -1 –name “*.conf”(条件为并列关系)
#find /etc/ -type f -o –ctime -1 –o –name “*.conf”(条件为或的关系,o=or)
4.找文件的硬链接
用法:先查看硬链接的inode号:ls –i “文件名”
然后#find 目录 inum inode号
5.-mtime 分钟时间
#find /root/ -type f –mmin -120 120分钟内
6.-exec 命令 {}\; 对查找到的命令执行指定的命令,执行命令前不提示用户。
#find /root/ -type f –mmin -120 –exec ls –l {}\;
改名称:
7.根据文件大小 –size
用法:#find /root/ -size -/+c,k(c表示byte,k表示1024bytes)
2.24文件名后缀
1.文件类型
d:目录,他与windows下的文件夹类似。
-:普通文件,可分为纯文本文件(ACAII)和二进制文件。纯文本文件可通过cat,more,less等工具查看内容,而二进制文件可通过file查看。
l:链接,类似于windows的快捷方式
p:管道文件
c:字符设备文件
b:该文件为块设备
s:套接字文件,用于进程之间的通信
2.Linux文件名后缀
文件名后缀作用:当用户看到用户名时,能够很快知道是一个什么文件。
常用:
sh:代表是一个shell脚本
tar.gz:代表是一个压缩包
my.cnf:代表是一个配置文件
test.zip:代表是一个压缩文件
2.25Linux与Windows互传文件
使用XShell,Putty不可以
首先安装一个包:#[[email protected] /]# yum install -y lrzsz
1.把Linux文件传输到Windows上使用命令:sz “文件名”
实例:
[[email protected] /]# touch 1.txt
[[email protected] /]# ls
1.txt default.target lib opt sbin tmp
aminglinux dev lib64 proc srv usr
bin etc media root sys var
boot home mnt run test
[[email protected]/]# sz 1.txt
[[email protected] /]# ^C
[[email protected] /]# vi 1.txt
[[email protected] /]# sz 1.txt
此时在Windows上就可以看到1.txt文件了
2. 把Windows文件传输到Linux上使用命令:rz “window上文件”