第一章文件权限

  1. 针对用户来分,文件权限可分为三类

         (1)文件属主,创建该文件的用户

         (2)同组用户,拥有该文件的用户组中的任何用户

         (3)其他用户,既不属于拥有该文件的用户组的某一用户

 

  1. 输入ls –l时有出现哪些信息?

   

  1. total 16指该目录中所有文件所占的空间

  2. drwxrwxr-x中,分成四部分分析

    d表示work是一个目录

    rwx指文件属主权限是可读写执行

    rwx指同组用户权限也是可读写执行

    r-x指其他用户权限是可读执行

  3. work目录权限位后面的2指该文件硬链接的数目

  4. 第一个isaac.ouyang指文件的属主

  5. 第二个isaac.ouyang指文件属主所在的缺省(默认)组(一个用户可以有很多个组)

  6. 4096文件长度,单位字节(Byte)

  7. May 20 14:05文件的更新时间

  8. Work文件名

 

  1. 文件类型有哪些?

  1. d 目录(如2中的work文件)

  2. l 符号链接

  3. s 套接字文件

  4. b 块设备文件

  5. c 字符设备文件

  6. p命名管道文件

  7. – 普通文件(不属于上述类型的文件都叫普通文件)

 

  1. 当文件权限为rw-rw----时,代表什么含义?(未验证)

         请注意,这不是属主和同组用户可读写不可执行,其他用户不可读写执行的意思,它是文件属主同组用户其他用户都可读写的意思,因为所有用户都可以写,所以慎用这种权限。

 

  1. chmod的两种模式使用方法

  1. 符号模式

    chmod [who]operator[permission] filename

    who的含义:

    u 文件属主(user)

    g 同组用户(group)

    o 其他用户(other)

    a 所有用户(all)

    operator含义:

    + 增加权限

  • 取消权限

= 设定权限

Permission含义:

r 读权限

w 写权限

x 执行权限

s 文件属主和组set-ID

t 粘性位*

l 给文件加锁,使其他用户无法访问

用法举例:

chmod a–x myfile              所有用户取消执行权限

chmod go+w myfile 组内用户和其他用户增加写权限

  1. 绝对模式

    用法举例:

    chmod 777 myfile 全部可读可写可执行

    chmod 664 myfile 属主同组用户可读写,其他用户可读

    chmod 664 *             一次设置目录下所有文件权限

    chmod –R 664 /usr/temp         改变/usr/temp目录下全部文件权限(小心使用)

 

  1. suid和guid权限

  1.  什么是suid和guid权限

当一个脚本文件设置了suid权限后,其他用户执行这个脚本时也会具有其属主的相应权限。同理guid是其他用户会具有该文件所属用户组中用户的权限。要实现suidguid权限该用户必须要先设置执行权限(这很好理解,没执行权限还怎么执行脚本文件呢)

/bin目录下查看设置了suid的命令

$ ls   –l | grep   ‘^…s’

/bin目录下查看设置了guid的命令

$ ls   –l | grep   ‘^…s..s’

 

  1.  什么情况下使用suid和guid权限

    当多个用户管理一个数据库系统时,普通用户需要对数据库进行一些操作,但他们

没有操作权限,这时管理员可以写一个具有suidguid权限脚本,只要普通用户执行该脚本就能获得属主用户权限,实现相应的操作,脚本运行结束后恢复普通用户的权限

  1. 如何设置suid和guid权限

    使用chmod绝对模式的话,在数字前加上4或6

    chmod 4755 filename                rws r-x r-x

    chmod 6711 filename                rws –s –s

    使用符号模式的话

    chmod u+s filename

 

  1. chown和chgrp介绍

  1. chown命令可以改变文件属主,一旦改变后就没法重新收回他的所有权,除非你是管理员或者新的属主。

  2. 一般用法

    chown –R –h owner file

    -R意味着对子目录下的文件都进行同样操作,-h意味着改变链接文件的属主时不影响链接所指向的目标文件

  3. chown例子

     

  4. chgrp例子

     

 

  1. 如何找出当前用户所属用户组?

     

 

9、使用umask设置新创建的目录和文件的缺省权限

  1. umask值的对应关系如下表

        

  1. 查看umask值

    $ umask

    $ 0002

  2. 设置umask值

    $ umask   nnn

 

10、使用软链接(相当于快捷方式)

  1. 命令格式

    Ln [-s] source_path target_path

    -s的作用是:

    -s, --symbolic              make symbolic links instead of hard links

  2. 创建的软链接权限是777,但依然以源文件的权限为准,如下图所示,qqq_link依然不能写

     

 

第二章使用findxargs

  1. find的一般形式

    find pathname –options [-print –exec -ok]

     

  2. 通过文件名查找,使用-name选项

    find  ~       -name       “*.txt”      -print        //在自己的根目录中查找所有后缀为txt的文件

    find  .        -name       “[A-Z*]”   -print        //在当前目录查找首字母为大写的文件

    find  /etc  -name       “host*”    -print        //在/etc目录下查找开头为host的文件

    find  /        -name       “*”   -print                  //在根目录查找所有文件,no zuo no die

    find  .        -name       “[A-Z][A-Z][0-9][0-9].txt” //ac84.txt会被找到

  3. 通过文件权限查找,使用-perm选项

    find  .        -perm       777                              //在当前目录下查找权限为777的文件

  4. 忽略某个目录查找文件,使用-prune

    忽略asf这个目录,在当前目录下查找所有文件

     

  5. 通过属主查找文件,用user(还有nouser)

    find ~ -user dave –print            //在根目录下查找属主为dave的文件

    find ~ -nouser  -print                  //在根目录下查找属主账号已经被删除的文件

  6. 通过所属用户组查找文件,group和nogroup

    用法同理5

  7. 通过更改时间查找文件,用-mtime

    如果系统突然没有可用空间了,可以用这种方法查找到底是哪一个文件在短时间内增长迅速

    find  ~       -mtime -5                   -print                           //在根目录下查找更改时间在5天内的文件

    find  ~       -mtime +3         -print                           //在根目录下查找更改时间在3天前的文件

  8. 通过对比文件之间更改时间查找文件

    find  .        –newer    444  -print                           //在当前目录下查找更改时间比444早的文件

    find  .        ! –newer  444  -print                           //比444晚的文件,只需加一个逻辑非符号

     

  9. 通过文件类型查找文件

    find  .        -type         d       -print                           //在当前目录查找类型为d的文件

  10. 按文件大小查找(加c单位为字节,不加单位为块,1块等于512字节)

    find  .        –size                  +100c       -print                  //在当前目录下查找大于100字节的文件

    find  .        –size                  100c                   -print                  //在当前目录下查找恰好是100字节的文件

    find  .        –size                  -100          -print                  //在当前目录下查找小于是100块的文件

  11. 如果想先匹配操作目录的文件,再在其子目录下查找,可以用-depth

    find  .        -name       “abc.txt” -depth      -print        //先在当前目录下查找,再在其子目录找

    在实际使用时出现以下警告:

     

  12. 在当前文件系统中查找文件(不进入其他文件系统),使用-mount

find .         –name      “*.txt”      -mount –print           //在当前目录下查找本文件系统结尾为.txt的文件

  1. 使用-cpio向磁带设备备份文件或恢复文件(未接触过)

    备份/etc /home /apps目录中的文件

     

  2. 使用exec或ok来对查找到的文件执行shell命令

    exec的用法为后面跟着要执行的命令,然后是一对{},一个空格和一个\,最后是一个分号。

    find . –type d –exec ls –l {} \;             //用ls-l列出匹配到的文件

    find . –name “*.txt” –mtime +5 –ok rm {} \;             //删除名字后是.txt,修改时间五天以上的文件

     

  3. xargs于exec的区别

    当使用find和exec时,find会将所有匹配到的文件像参数一样传递给exec执行,有些系统会对传递给exec的命令长度有限制,会出现错误信息,有些系统中使用exec会为处理每一个匹配到的文件发起一个相应的进程,当文件太多时会导致进程过多,系统性能下降,xargs命令则始终只有一个进程,能很好解决上述问题。

     

 posted on 2020-12-06 15:18  拳击手乌小冬  阅读(62)  评论(0编辑  收藏  举报