linux查找以h结尾的文件,【linux_笔记】Linux_文件查找(find)详解特殊权限
学习记录过程中难免出现错误,如有发现,还望大神们指出。
示例操作部分有的与历史操作有关,如果先前的示例操作没有执行过的话,可能会有部分示例的操作无法执行。示例仅供参考(练习题在附录)。
文件查找:
locate(不常用):非实时,模糊匹配,根据全系统文件数据库进行查找,速度快;
# updatedb, 手动生成文件数据库(非常耗时)
find:实时,精确,支持众多查找标准,遍历指定目录中的所有文件完成查找,速度慢;
命令格式:find 查找路径 查找标准 查找到以后的处理运作
查找路径:默认为当前目录
查找标准:默认为指定路径下的所有文件
处理运作:默认为显示
匹配标准:
-name 'FILENAME':对文件名作精确匹配(严格区分大小写)
-iname 'FILENAME': 文件名匹配时不区分大小写
-regex PATTERN:基于正则表达式进行文件名匹配
-user USERNAME: 根据属主查找
-group GROUPNAME: 根据属组查找
文件名通配:
*:任意长度的任意字符
?
[]
示例:
find /etc -name 'passwd' ―― 在etc下精确匹配文件名是passwd的文件
find /etc -name 'passwd*' ―― 匹配文件名以passwd开头的文件
find /etc -name '*passwd' ―― 匹配文件名以passwd结尾的文件
find /etc -name '*passwd*' ―― 匹配文件名含有passwd字符串的文件
find /tmp -user hadoop ―― 根据属主查找
find /tmp -user student
(用户被删除后,此前该用户创建的文件属主就会修改为该用户的UID)
-uid UID: 根据UID查找
-gid GID: 根据GID查找
-nouser:查找没有属主的文件
-nogroup: 查找没有属组的文件
示例:
su - user1
cd /tmp
touch userone
ls -l
exit
ls -l /tmp
userdel -r user1
ls -l /tmp ―― userone文件的属主、属组显示为UID、GID
find /tmp -uid 5001 ―― 我的系统上UID显示的是5001
/tmp/userone
find /tmp -nouser
/tmp/userone
find /tmp -nogroup
/tmp/userone
-type (根据文件类型进行查找)
f: 普通文件
d:目录
c:字符
b:块
l:链接字
p:管道
s:套接字
示例:
find /tmp -type d ―― 查找tmp下文件类型为目录的文件
find /tmp -type s ―― 查找tmp下文件类型为套接字的文件
find /tmp -type s -ls ―― 进行验证(动作部分在下文)
-size [+|-] ―― 根据文件大小进行查找(不跟单位默认字节)(“+-” 相当于 “大于小于”)
#k:kb
#M:mb
#G:gb
示例:
find /etc -size 10k -ls (查找etc下大小在9-10k之间的文件)
find /etc -size -10k -ls (查找所有小于10k的文件)
组合条件查找:
-a:与
-o:或
-not :非
示例:
1、
find /tmp -nouser -a -type d -ls ―― 查找tmp目录下没有属主并且类型为目录的文件
find /tmp -nouser -o -type d ―― 查找没有属主或者类型为目录的文件
find /tmp -not -type d -ls ―― 查找非目录类型文件
find /tmp -not \( -type d -o -type s \) -ls―― 查找既不是目录类型也不是套接字类型的文件
2、
rm -rf /tmp/test
cd /tmp
mkdir /tmp/test
cd /tmp/test
touch a b c d
useradd user1
useradd user2
chown user1 a ―― 修改a的属主为user1
chown user2 b ―― 修改b的属主为user2
find ./ -user user1
find ./ -user user2
find ./ -not \( -user user1 -o -user user2 \) ―― 查找属主不是user1,也不是user2的文件
mkdir hello
mkdir hi
chown user1 hi
ls -l
find ./ -not \(-user user1 -a -type d\) 属主不是user1或者不是目录的文件――摩根定律
-mtime #:查找最近一次修改时间距现在#天的文件
-ctime #:查找最近一次改变时间距现在#天的文件
-atime #:查找最近一次访问时间距现在#天的文件
[+|-]#:距离现在[大于|小于]#天
-mmin #:查找最近一次修改时间距现在#分钟的文件
-cmin #:查找最近一次改变时间距现在#分钟的文件
-amin #:查找最近一次访问时间距现在#分钟的文件
[+|-]#:距离现在[大于|小于]#分钟
示例:(在/tmp/test下)
find ./ -amin -5 ―― 查找当前目录下最近一次修改时间距现在小于5分钟的文件
stat hi
stat hello
find ./ -amin +5 ―― 查找当前目录下最近一次修改时间距现在大于5分钟的文件
-perm MODE:通过精确匹配文件的权限查找文件
/MODE: 查找文件权限任意一位与MODE相匹配的文件
-MODE: 查找文件权限能完全包含此MODE的文件
例如:
匹配条件:-644(MODE)
644: rw-r--r--
755: rwxr-xr-x ―― MODE不匹配(只有同样是644才匹配),/MODE匹配,
―― -MODE匹配(rwxr-xr-x包含rw-r--r--)
750: rwxr-x--- MODE不匹配,/MODE匹配,-MODE不匹配
示例:(在/tmp/test下)
find ./ -perm 644
chmod 0-r a
find ./ -perm /644 -ls
find ./ -perm -644 -ls
chmod 006 b
ls -l
find ./ -perm /640
find ./ -perm -001 ―― 查找其他用户有执行权限的文件
动作:
-print: 显示(默认)
-ls:类似ls -l的形式显示每一个文件的详细
-ok COMMAND {} \; 每一次操作都需要用户确认 ―― {}代表前面已经查找到的文件集
-exec COMMAND {} \; 对查找到的文件执行指定命令(不需要确认)
示例:(示例中省略部分ls -l,操作中自行添加检验操作结果)
在当前目录下查找其他用户有wr权限的文件,并撤销其他用户这些文件的w权限:
find ./ -perm -006 -exec chmod o-w {} \;
find ./ -type d -ok chmod +x {} \; ―― 对目录文件添加所有用户的x权限
ls -l
chmod 666 b
chmod 664 d
ls -l
find ./ -perm -020 -exec mv {} {}.new \;对查找到的文件,在其文件名后面添加.new
cd
ls -l
find ./ -name "*.sh" -a -perm -111 -exec chmod o-x {} \; ―― 组合查找+修改权限
ls -l
特殊权限SUID等讲解
SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者;
chmod u+s FILE
chmod u-s FILE
如果FILE本身原来就有执行权限,则SUID显示为s;否则显示S;
SGID: 运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组;
chmod g+s FILE
chmod g-s FILE
Sticky: 在一个公共目录,每个人都可以创建文件,删除自己的文件,但不能删除别人的文件;
chmod o+t DIR
chmod o-t DIR
示例:
1、SUID
ls -l /bin/cat ―― 查看cat的权限设置
ls -l /etc/shadow ―― 查看shadow的权限设置
useradd hadoop
su - hadoop
cat /etc/shadow ―― hadoop没有访问权限
exit
chmod u+s /bin/cat ―― 添加SUID权限给cat
ls -l /bin/cat
su - hadoop
whoami
cat /etc/shadow ―― 此时cat的属主是管理员而不是hadoop,具有管理员权限
exit
chmod u-s /bin/cat
2、
说明:有一个开发团队(develop team),有三个成员(hadoop,hbase,hive),
现希望三个成员可以互相访问、使用同一文件,每个人都可以创建文件、
删除自己的文件,但不能删除别人的文件。
useradd hbase
useradd hive
mkdir /tmp/project ―― 创建项目目录
groupadd developteam ―― 添加开发团队组
chown -R :developteam /tmp/project ―― 修改project的属组
usermod -a -G developteam hadoop ―― 向hadoop追加新的附组developteam
usermod -a -G developteam hbase
usermod -a -G developteam hive
su - hadoop
cd /tmp/project ―― project没有写权限
ls -ld
touch a.hadoop ―― 拒绝执行
exit
chmod g+w /tmp/project ―― 管理员给project添加写权限
su - hadoop
cd /tmp/project
touch a.hadoop ―― hadoop在project下创建文件a.hadoop
exit
su - hbase
cd /tmp/project
touch a.hbase ―― hbase在project下创建文件a.hbase
ls -l ―― a.hadoop、a.hbase的属主属组分别都是是hadoop和hbase
exit
SGID:
chmod g+s /tmp/project/ ―― 给project添加SGID权限
ls -ld /tmp/project/
su - hadoop
cd /tmp/project
touch b.hadoop ―― hadoop在project下创建文件b.hadoop
exit
su - hbase
cd /tmp/project
touch b.hbase ―― hbase在project下创建文件b.hbase
ls -l ―― 在project中创建的文件属组不再是创建文件的用户基本组而是目录的属组
―― b.hadoop、b.hbase的属组都是developteam
exit
su - hadoop
rm /tmp/project/b.hbase ―― hadoop可以删除b.hbase
ls -l /tmp/project/
exit
Sticky:
su - hbase
cd /tmp/project
touch b.hbase
exit
chmod o+t /tmp/project/ ―― 给project添加Sticky权限
ls -ld /tmp/project/
rm /tmp/project/b.hbase ―― hadoop不能删除b.hbase
rm /tmp/project/b.hadoop ―― 但是可以删除b.hadoop
由SUID、SGID、Strcky又组成了一组权限 000: 001: ... 110: 111: 例如:chmod 7755 /backup/test 最前面的权限7代表的是权限sst 遮罩码的MODE第一位就是特殊权限组 umask 0022 umask 0002
linux查找以h结尾的文件,【linux_笔记】Linux_文件查找(find)详解特殊权限相关推荐
- linux下grep文件内容搜索工具及基本正则表达式详解
linux下grep文件内容搜索工具及基本正则表达式详解 grep命令: 根据模式(文本字符和基本正则表达式的元字符组合而成之匹配条件)搜索文本, 并将符合模式的文本行显示出来. 格式:grep [选 ...
- linux复制文件scp命令,Linux 中的文件复制cp命令和scp命令详解
Linux 中的文件复制cp命令和scp命令详解 在使用操作系统的使用过程中,常常需要复制文件到本地或者传输文件到其他电脑上,这时候用到两个命令cp和scp. cp命令用来复制文件或者目录.scp是s ...
- Linux操作命令分类详解 - 用户权限(三)
转自:Linux操作命令分类详解 - 用户权限(三),更优阅读体验:http://www.kongzid.com/ 目录 系列文章 1.用户账号管理 1.1 useradd/adduser 添加用户账 ...
- Linux Shell脚本入门教程系列之(八)Shell printf命令详解
本文是Linux Shell脚本系列教程的第(八)篇,更多shell教程请看:Linux Shell脚本系列教程 在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对She ...
- 用windows系统下的DOS命令将腾讯视频客户端下载的qlv文件转换成MP4格式(图文详解)
用windows系统下的DOS命令将腾讯视频客户端下载的qlv文件转换成MP4格式(图文详解) 前言 原理 工具 步骤 延伸 博主联系方式 前言 本人喜欢收集各种优秀的视频,但是很多情况下我们看到的视 ...
- linux上连接ftp服务器,linux下lftp连接ftp服务器进行上传与下载的方法详解
摘要 腾兴网为您分享:linux下lftp连接ftp服务器进行上传与下载的方法详解,中英翻译,中建在线,掌上看家,银行帮等软件知识,以及微信一键转发工具,小学英语冀教版,正是在下表情包,易问电信,万能 ...
- python 经典脚本文件_Python3.5文件读与写操作经典实例详解
本文实例讲述了Python3.5文件读与写操作.分享给大家供大家参考,具体如下: 1.文件操作的基本流程: (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 ...
- linux内核移植与开发板,Linux 2.6.36内核移植飞凌OK6410开发板完整步骤详解
Linux 2.6.36内核移植飞凌OK6410开发板完整步骤详解 [复制链接] 今天终于让Linux内核在飞凌的板子上跑起来了,想来也是艰辛,为了移植成功,断断续续做了将近两个月的努力,期间郁闷不可 ...
- java 生成dump_java dump文件怎么生成和分析-JMAP用法详解
jmap是java自带的工具 1. 查看整个JVM内存状态 jmap -heap [pid] 2. 查看JVM堆中对象详细占用情况 jmap -histo [pid] 3. 导出整个JVM 中内存信息 ...
- java 文件下载详解_Java 从网上下载文件的几种方式实例代码详解
废话不多说了,直接给大家贴代码了,具体代码如下所示: package com.github.pandafang.tool; import java.io.BufferedOutputStream; i ...
最新文章
- 阐述一下Mysql事务的四个特性_数据库事务的四个基本性质?
- hadoop2.4.1+hbase0.98.3实现的分布式网盘系统初步(已开源)
- Unity按钮禁用和变灰
- 模块化思想——粤嵌GEC6818读取图片宽度、高度、色深
- Nuget:Newtonsoft.Json
- 利用JavaScript生成随机数字!
- C语言 输出100以内的质数
- 如何理解 图像傅里叶变换的频谱图
- iOS 开发中出现假死解决思路
- 商鼎云PC端正式亮相—开启内测通告
- mysql修改校对集_mysql数据库的基本操作(增删改查、字符集、校对集)
- PrimeNG安装使用
- pypy+uwsgi+dango+nginx 简单部署
- Impala String函数大全
- vue前端使用jsencrypt RSA 加解密插件
- 【Linux学习笔记】27:环境变量中的语系变量
- c# 利用AForge.NET组件操作摄像头
- InnoDB ReplicaSet
- LeetCode 208 实现 Trie (字典树)
- ubuntu免费下载----百度网盘