chattr 给文件或者目录增加隐藏权限.
chattr +-= 参数 文件或目录名
+、-、=分别表示增加、删除、设定 给目录加特殊权限,目录下的文件的文件内容是可以更改的,这个权限只是作用于目录本身。
a : 增加该属性后,表示只能追加不能删除,非root用户不能设定该属性。
i : 增加该属性后,表示文件不能删除、重命名、设定链接、写入以及新增数据等。
给目录加上+i权限后,是和文件添加+i属性一样的效果,不能更改名字,不能写入内容,不能创建子目录,也不能删除
给目录加了一个+a权限或+i权限,能更改目录里面文件的内容
lsattr 用于查看文件或目录的特殊属性
lsattr -d 目录 : 查看目录的属性
lsattr -R 会显示目录及子目录下的文件(一层或多层目录文件),若是不加-R,则仅仅显示一层目录文件
set_uid: 该权限针对二进制可执行文件,使文件在执行阶段具有所有者的权限。比如:passwd这个命令就有这个权限,当普通用户执行passwd命令时,可以临时获得root权限,从而可以更改密码。
set——gid :该权限针对二进制可执行文件,也可以作用在目录上。当作用在文件时,和set uid一样。当作用目录时,目录被设置这个权限后,任何用户在此创建的文件都具有和该目录所属的组相同的组。
sticky bit 防删除位。文件是否可以被某用户删除,主要处决于该文件所在目录是否对该用户具有写的权限。
总结如下:chmod u+s xxx # 设置setuid权限
chmod g+s xxx # 设置setgid权限
chmod o+t xxx # 设置stick bit权限,针对目录
chmod 4775 xxx # 设置setuid权限
chmod 2775 xxx # 设置setgid权限
chmod 1775 xxx # 设置stick bit权限,针对目录
硬链接和软链接的区别:
ln -s 源文件 目标文件 如果加了-s,则表示创建软链接。不加-s,则是创建硬链接。
硬链接:
[硬链接]-->指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户 就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和 其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
语法:ln 【源文件】 【硬连接文件】
1. 只能对文件创建,不能应用用于目录
2. 不能跨文件系统
3. 创建硬链接会增加文件被链接的次数
软链接:
做软链接尽量要求用绝对路径。
相当于windows中的快捷方式,就好像windows里面的桌面快捷方 式,源文件被删除了,快捷方式也失
语法:ln -s 【源文件或目录】 【软件链名字】
应用:(1)可以应用于目录 (2)可以跨文件系统(3)不会增加被链接文件的链接次数
(4)大小为指定的绝对路径所包含的字符总数(5)有自己的inode号(6)权限无关紧要
find的用法:查找文件
locate命令的安装: yum insatll -y mlocate
yum安装完后,需要执行一下updatedb这个命令,更新一下数据库,locate命令才可以用。
文件的类似:
d: 目录
f:普通文件
l :链接文件
s: socket 文件(套接字文件)
c :字符设备文件
b :块设备文件
find命令的基本操作集合:
find .-name april fprint file 在当前目录下查找以april开始的文件,并把结果输出到file中
find . -name ap -o -name may查找以ap或may开头的文件(-o表示或者)
find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find /mnt -name t.txt ! -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
find /tmp -name wa* -type l 在/tmp下查找名为wa开头且类型为符号链接的文件
find /home -mtime -2 在/home下查最近两天内改动过的文件
find /home -atime -1 查1天之内被存取过的文件
find /home -mmin +60 在/home下查60分钟前改动过的文件
find /home -amin +30 查最近30分钟前被存取过的文件
find /home -newer tmp.txt 在/home下查更新时间比tmp.txt近的文件或目录
find /home -anewer tmp.txt 在/home下查存取时间比tmp.txt近的文件或目录
find /home -used -2 列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find /home -user cnscn 列出/home目录内属于用户cnscn的文件或目录
find /home -uid +501 列出/home目录内用户的识别码大于501的文件或目录
find /home -group cnscn 列出/home内组为cnscn的文件或目录
find /home -gid 501 列出/home内组id为501的文件或目录
find /home -nouser 列出/home内不属于本地用户的文件或目录
find /home -nogroup 列出/home内不属于本地组的文件或目录
find /home -name tmp.txt -maxdepth 4 列出/home内的tmp.txt 查时深度最多为3层
find /home -name tmp.txt -mindepth 3 从第2层开始查
find /home -empty 查找大小为0的文件或空目录
find /home -size +512k 查大于512k的文件
find /home -size -512k 查小于512k的文件
find /home -links +2 查硬连接数大于2的文件或目录
find /home -perm 0700 查权限为700的文件或目录
find /tmp -name tmp.txt -exec cat {} \;
find /tmp -name tmp.txt -ok rm {} \;
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件
****重点****find与-exec或者xargs的结合
stat 文件名 :查看这个文件的atime、ctime、mtime的时间。
linux和windows之间相互传文件:
yum install -y lrzsz
一般情况下,每个存储设备或存储设备的分区(存储设备是硬盘、软盘、U盘 ..)被格式化为文件系统后,都会有两部份,一部份是iNode,另一部份是Block。Block是用来存储数据用的,而iNode就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。
inode包含文件的元信息,具体来说有以下内容:
- Size 文件的字节数
- Uid 文件拥有者的User ID
- Gid 文件的Group ID
- Access 文件的读、写、执行权限
- 文件的时间戳,共有三个:
- Change 指inode上一次变动的时间
- Modify 指文件内容上一次变动的时间
- Access 指文件上一次打开的时间
- Links 链接数,即有多少文件名指向这个inode
- Inode 文件数据block的位置
- Blocks 块数
- IO Blocks 块大小
- Device 设备号码
可以用stat命令,查看某个文件的inode信息:
***有时候查看系统的时候,df -h 看到磁盘空间并没有占满,可以df -i 查看一下是不是inode占满了。