特殊权限、连接文件和find

隐藏权限

lsattr : 查看隐藏权限

lsattr +R 查看目录和目录里所有文件的隐藏权限

chattr : 设置隐藏权限

chattr +i 1.txt 无法改变和删除文件和目录 chattr +i 取消特殊权限

chattr +a 1.txt 只允许追加文件内容 chattr -a 取消追加权限

目录加特殊权限可以在文件写入内容

特殊权限

/etc/shadow 用户密码的文件

set_uid : 让普通用户临时拥有该命令所有者的权限(必须是可执行的二进制文件)

如:passwd 命令就具有该权限 当普通用户执行passwd命令 可以临时获得root权限更改密码

chmod u+s /usr/bin/ls 加入set_uid权限 chmod u-s /usr/bin/ls 去掉权限

set_git : 普通用户临时拥有所属组的权限

chmod g+s /usr/bin/ls 加入set_gid权限 chmod g-s /usr/bin/ls 去掉权限

当目录设置了set_gid 之后创建的子文件和子目录所有组和该目录的所属组保持一致不会改变

stick_bit : 防删除位防止别人删除自己的文件 root 用户除外 chmod o+t

例如:tmp目录下的文件

但是在tmp下如果文件的上一级目录没有防删除位 即使文件本身没有写权限或者有防删除位也能被删除

连接文件

软连接:类似于Windows的快捷方式 可以对文件和目录跨分区使用不能删除源文件或目录

ln -s +源文件 +目标文件 做软链接的时候尽量使用绝对路径

例如:ln -s 1.txt 2.txt

硬链接: 两个文件inode号(属性)相同不会占用双份空间 不能对目录使用 无法跨分区可以删除源文件

搜索文件的命令

which:通过环境变量PATH查询命令的绝对路径

locate:搜索文件命令 安装 yum install -y mlocate 使用前 updatedb 更新一下文件后才能搜索

stat +文件 :可以查看文件的具体信息

find命令

find +路径 +-type +类型 +-name +文件名称 来搜索文件

按 -type 文件类型:

f=普通文件 d=目录 l=软链接 s=socket文件 b=块设备文件、c=字符串设备

文件名称后可以加*星号模糊搜索 选项键加 -o:表示或者

按时间查找:

-atime:最近的访问时间       -mtime:更改文件内容的时间      -ctime:更改文件权限和inode的时间

查找一天以内修改过的文件

-inum :按inum查找

find / -inum

-mmin:按分钟查找

find /root/ -type f -mmin -60 查找60分钟以内修改过的文件

-size :按大小查找

find /etc/ -type f -size +500k 查找大于500k的文件

-perm   :按执行权限来查找

find /root/ -perm 777  查找/root/目录权限为777的文件或者目录

 

-exec : -exec   command   {} \;      —–将查到的文件执行command操作,{} 和 \;之间有空格

更改文件命令后面要加两个{}

(1)Find工具-name参数案列:

find /data/ -name "*.txt" #查找/data/目录以.txt结尾的文件;

find /data/ -name "[A-Z]*" #查找/data/目录以大写字母开头的文件;

find /data/ -name "test*" #查找/data/目录以test开头的文件;

(2)Find工具-type参数案列:

find /data/ -type d #查找/data/目录下的文件夹;

find /data/ ! -type d #查找/data/目录下的非文件夹;

find /data/ -type l #查找/data/目录下的链接文件。

find /data/ -type d|xargs chmod 755 -R #查目录类型并将权限设置为755;

find /data/ -type f|xargs chmod 644 -R #查文件类型并将权限设置为644;

(3)Find工具-size参数案列:

find /data/ -size +1M #查文件大小大于1Mb的文件;

find /data/ -size 10M #查文件大小为10M的文件;

find /data/ -size -1M #查文件大小小于1Mb的文件;

(4)Find工具-perm参数案列:

find /data/ -perm 755 #查找/data/目录权限为755的文件或者目录;

find /data/ -perm -007 #与-perm 777相同,表示所有权限;

find /data/ -perm +644 #文件权限在644以上;

(5)Find工具-mtime参数案列:

atime,access time 文件被读取或者执行的时间;

ctime,change time 文件状态改变时间;

mtime,modify time 文件内容被修改的时间;

find /data/ -mtime +30 -name "*.log" #查找30天以前的log文件;

find /data/ -mtime +30 -name "*.log" #查找30天以前的log文件;

find /data/ -mtime 30 -name "*.txt"#查找第30天的log文件;

find /data/ -mmin +30-name "*.log" #查找30分钟以前修改的log文件;

find /data/ -

 -30 -name "*.txt" #查找30分钟以内被访问的log文件;

find /data/ -cmin 30 -name "*.txt"#查找第30分钟改变的log文件。

(6)Find工具参数综合案列:

#查找/data目录以.log结尾,文件大于10k的文件,同时cp到/tmp目录;

find /data/ -name "*.log" –type f -size +10k -exec cp {} /tmp/ /;

#查找/data目录以.txt结尾,文件大于10k的文件,权限为644并删除该文件;

find /data/ -name "*.log" –type f -size +10k -m perm 644 -exec rm –rf {} /;

#查找/data目录以.log结尾,30天以前的文件,大小大于10M并移动到/tmp目录;

find /data/ -name "*.log" –type f -mtime +30 –size +10M -exec mv {} /tmp/ /;

文件后缀

linux系统里后缀名不严谨 习惯把相同类型的文件定义相同的后缀名

例如:sh代表shell脚本 gz代表压缩包 conf代表配置文件

echo $LANG :系统语言的环境变量

LANG=en 修改成英文语言 LANG=zh_CN.UTF-8 修改成中文

Linux和windows互传文件

只能用Xshell可以安装lrzsz : yum install -y lrzsz

sz +文件名 把linux传到Windows上

rz +回车 把Windows文件传到linux

传到当前目录

猜你喜欢

转载自blog.csdn.net/aaahai/article/details/81294392