find  [查找位置]  [查找标准]  [处理动作]
    查找路径:默认当前目录
    查找标准:默认为指定路径下的所有文件
    处理运作:默认为显示
    
    匹配标准
        -name 'FILENAME' :对文件名
            文件名通配:
            *:任意长度的任意字符
            ?
            []
        -iname 'FILENAME':文件名匹配时不区分大小写
        -regex PATTERN:基于正则表达式进行文件名通配
        -uid UID:根据UID查找
        -gid GID:根据GID查找
        -nouser:查找没有属主的文件
        -nogroup:查找没有属组的文件
    -type
       f:普通文件(f)
       d:目录文件
       b:块设备(block)
       c:字符设备文件(character)
       l:符号设备文件(symbolic link file)
       p:命令管道文件(pipe)
       s:套接字文件(socket) 

  -size [+|-]
        #k:[加|减]精确到10k
        #M
        #G
组合条件
    -a 与
    -o 或
    -not 非

/tmp目录,不是目录,并且还不能套接字类型的文件
    find ./ -not \ -user user1 -o -type d
    find ./ -not \( -user user1 -a -type d)
/tmp/test目录下,属主不是user1,也不是user2的文件
    find ./ -not \ -user user1 -a -user user2
    find ./ -not \( -user user1 -o -user user2)
    
修改时间
    -mtime
    -ctime
    -atime
        [+|-]#(数字)
        +5:5天之前
        -5:5天之内访问过
        5:刚好过去5天曾经访问过
    
    -mmin
    -cmin
    -amin
        [+|-]#
        +5:5分钟之前
        -5:5分钟之内访问过
        5:刚好过去5分钟曾经访问过
    
根据权限查找
    -perm MODE精确查找
          /MODE:只需要一个文件匹配即可显示
          -MODE:文件权限能完全包含此MODE时才能显示

wKioL1b6PMPjfTQqAADRtPDOHJ8553.png

运作
    -printf:显示
    -ls :类似ls -l 的显示每一个文件的详细信息
    -ok COMMAND {}\;找到文件的基础上对文件进一步操作(每一步操作都需要用户确认)
    -exec COMMAND {}\;对文件进一步操作(不需要确认)
        一定要\;结尾,否则语法错误
        {}:引用文件 文件名称占位符
    wKiom1c4USSy3LmpAAOnYuEztqU647.jpg    
    eg1.找到目录文件,将其属组的执行权限去掉,将其他用户的读权限去掉
    eg2.找到属组有写权限的文件a,并更名为a.new
    

wKioL1c4Ub-iHpPxAABLcoZAF4E469.jpg

wKioL1c4UcGSqmZgAAIKxqIkA1s793.jpg

wKiom1c4UWPxw834AASz4Kern8E463.jpg

课练1.查找/var目录下属主为root并且属组为gdm的所有文件
课练2.查找/usr目录下不属于root,bin,或Andy的文件
     find /usr -not \( -user root -o -user bin -o -user Andy \)
课练3.查找/etc目录下最近一周内内容修改过且不属于root及Andy用户的文件
    find /etc -ctime -7 -a -not  -user root -a -user Andy
课练4.查找当前系统上没有属主或属组且最近1天内曾访问过的文件,并将其属主属组改为root
     find ./ \( -nouser -o -nogroup \) -a -ctime -1 -exec -chown root:root {} \;
课练5.查找/etc目录下大雨1M的文件,并将其文件名写入/tmp/etc.largerfiles文件中
    find /etc -size +1M -exec {} >> /tmp/etc.largefiles \;
    find /etc -size +1M | xargs echo > /tmp/etc.largefiles
课练6.查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息
    find /etc -not -perm /222 -exec -ls {} \;
   

wKiom1c4UZWTe_WjAAOC2DE16ws258.jpg

wKiom1c4UZeDDPoWAAIz1lj1WZg671.jpg

wKiom1c4UZiiDbkPAADqpaAfKeA225.jpg

wKiom1c4UZnzSy_OAAGF454syao550.jpg


特殊权限
passwd:s
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
    
四位数权限,第一位是特殊权限
Sticky SGID SUID    
0 000 无特殊权限
1 001 只有Sticky
2 010 只有SGID
3 011 有SGID和Sticky
4 100 只有SUID
5 101 有SUID和SGID
6 110 有SUID和Sticky
7 111 三个特殊权限都有    
    eg:5755 /backup有SUID和Sticky

wKiom1c4UTyyzZylAAOVqHHP3zk972.jpg