chattr 设置隐藏权限
lsattr 查看隐藏权限
lsattr -R 可以把目录和目录下面的文件和子目录的隐藏权限显示出来。
向文件添加了隐藏 i 权限后即使我们查看该文件时,出现有rwx权限但是也不能操作,甚至编辑文件,添加内容也会出错
隐藏 i权限 是文件不能删,重命名,设定链接,写入和新增数据
格式:chattr [+-=][隐藏属性][文件名或目录名]
+:增加 、-:减少 、=:设定
减少 i 属性 chattr -i 1.txt
利用chattr +i是不是可以锁掉一些关键目录
lsattr 查看的是一个目录下的子目录和子文件隐藏文件
lsattr -d 目录名 加上-d 就可以查看目录本身隐藏权限
chattr +a 文件名 只能追加、可以touch更改时间,不能删除,不能改名,不能更改文件内容
chattr +i 目标目录 在这个目录下我们本身有一个问价(12.txt文件)这样我们在这个原有的文件下增加、追加内容都是可以的。但是不是针对原有文件操作则不行。
每次vi时实际上是在swap文件里编辑然后由swap覆盖原来的1.txt,如果+a则1.txt不能消失所以就多了一个swap文件
那这样1.txt是不是没有修改成功,因为说不能覆盖
特殊权限set_uid
set_uid可以使普通用户临时拥有root用户的权限,给普通用户设置set_uid,前提是文件是一个二进制的文件,而且是一个可执行的文件,
/usr/bin/passwd这个文件默认拥有set_uid的权限。没有x权限s会显示成大写的
给普通用户设置执行ls命令的权限:chmod u+s /usr/bin/ls
给普通用户去掉执行ls命令的权限:chmod u-s /usr/bin/ls
特殊权限set_gid
权限位作用在组权限位上面,同样也是一个小s,使普通用户临时拥有所属组的身份。作用在文件上和set_uid的作用差不多。
给ls加上一个set_gid权限: chmod g+s /usr/bin/ls
特殊权限stick_bit
stick_bit 防删除位,防止其他用户删除自己的文件。
文件是否可以被某个用户删除,主要取决于该文件在这个目录是否对该用户具有写权限。有写功能即可删除,否则反之!
stick_bit 防止别人删除我们自己的文件
rwt 也是具有x权限的
当我们的目录添加了一个 stick_bit权限,则我们在其他用户 的时候就不能删除这个文件和目录,但是可以修改。
find命令
find是用来搜索文件的命令,此外,which、whereis,locate(yum install -y mlocate 安装后收到手动生成相应数据库 updatedb)都是用来搜索文件的命令。
格式:find 路径 +具体的条件
通过文件类型查找文件
find 【路径】-type 【类型f/b/c/d/l/s】-name filename
格式:find 【路径】文件类型
类型:-type -name -atime -ctime-mtime
用stat查看文件的具体信息
查找在150分钟发生更改的文件 find /root/ -type f -mmin -150
# find /root/ -type f -mmin -150 -exec ls -l {} \; ls -l出在150分钟内发生修改的文件
find /root/ -type f -mmin -150 -exec mv{} {}.bak \;
工作中可用到:
查找文件大小(k,M,G)
find /root/ -size +10k 查找大于10K的文件
find /root/ -size -10M 查找小于10M的文件
检验:大于10K
find /root/ -type f -size +10k -exec ls -lh {} \;
文件名后缀
在linux系统中,文件的后缀名没有具体意义,加或者不加都无所谓。(为了区分,我们都加一个后缀名)
1.sh ==代表shell脚本
2.tar.gz ==代表压缩包
3.my.cnf ==代表配置文件
4.test.zip ==代表压缩文件
5. .txt == 代表普通文档文件
linux和windows互传文件(只能在xshell上面执行)
首先要安装一个互传的包lrzsz, rz表示把windows上的文件传到linux上面(传到当前目录);sz+文件名,把linux上的文件传到windows上面
find ./表示在当前路径下查找,
find /etc 表示在etc文件下查找
find -type f 表示查找文件
find -type d 表示查找目录
find -name 1.txt 表示查找文件名称是1.txt 的文件
find -size 500M 表示查找大小为500兆的文件
find -perm 644 表示查找文件或目录权限是644/rw-r--r--
stat 1.txt 表示查看当前文件修改的时间,属性修改的时间
查找/var目录下属主是root并且属组是mail的所有文件
[root@localhost ~]# find /var -type f -user root -group mail
/var/spool/mail/root
[root@localhost ~]#
查找/usr/目录下不属于root,bin的文件
[root@localhost ~]# find /usr -type f -not -user root -a -not -user bin
/usr/libexec/abrt-action-install-debuginfo-to-abrt-cache
[root@localhost ~]#
atime,amin,ctime,cmin,mtime,mmin
atime,amin:文件被查看时间
ctime,cmin:文件内容被修改的时间
mtime,mmin:文件属性被修改的时间
查找/etc目录下最近一周内容修改过且不属于root用户的文件
[root@localhost ~]# find /etc -type f -mtime -7 -not -user root
[root@localhost ~]#
find -ctime +1 表示1天以上
find -ctime -1 表示1天以内
find -ctime 1 刚好一天
find -nouser 没有属主
find -nogroup 每一属组
查找当前系统上没有属主或属组且最近一天内访问的过的文件并将属主和属组都改为root
find / -type f -nouser -a nogroup -atime -1|xargs chown root.root
查找/etc目录下大于1M的文件,并将文件名写入到/tmp/test文件中
find /etc -size +1M -type f >>/tmp/test
查找/etc目录下所有用户没有写权限的文件并列出详细信息
find /etc -type -f -not -perm /222
先找出所有有写权限的文件再取反就找到结果。
多个文件个并为一个
find /tmp -name "*.sh"|xargs cat 2>&1 1>>cc.txt