美文网首页
第七章 Linux文件与目录管理 (7.3-7.4)

第七章 Linux文件与目录管理 (7.3-7.4)

作者: Leathy | 来源:发表于2017-11-10 09:30 被阅读8次

    7.3 文件内容查阅

    cat
    tac
    nl
    more
    less
    head
    tail
    od

    7.3.1 直接查看文件内容

    • cat (concatenate)
      cat - concatenate files and print on the standard output
      [-A] 将特殊字符也一并显示 (Tab会以^I的形式显示,断行则是$)
      [-n] 打印行号 包括空白行

    • tac

    • nl
      [-b] 同时打印空白行行号
      nl 可以作更多的显示设计

    7.3.2 可翻页查看

    • more
      Space 下一页
      Enter 下一行
      /字符串 在此处向下查询
      :f 显示文件名以及目前显示的行数
      q quit
      b 往回翻页

    • less
      Space 下一页
      PageUp
      PageDown
      /字符串 向下查询字符串
      ?字符串 向上查询字符串
      n 重复前一个查询
      q quit

    7.3.3数据选取

    • head
      [-n] 选取前 n 行显示
      若n后数字前 带 -
      如:-100
      则是从后往前数100,其余部分显示

    • tail
      [-n] 最后n行显示
      [-f] 持续检测文件更新,并显示最后几行 (ctrl c 退出)

    7.3.4 非纯文本文:od

    用不着 略

    7.3.5 修改文件时间或创建新文件:touch

    三个时间参数
    内容改变时间 modification time mtime
    属性改变时间 status time ctime
    被读取时改变的时间access time atime

    ls 显示的 mtime

    [-a] atime
    [-c] 不创建文件 --no-create
    [-m] mtime
    [-d] date
    [-t] time YYMMDDhhmm

    ll = ls -l
    [--time=atime] 后接文件名

    ex: touch -d "2 days ago" bashrc
    touch -t 0709150202 bashrc

    7.4 文件与目录的默认权限与隐藏权限

    Review: chmod chown chgrp p#144

    • chgrp [-R]
      用户组名必须在 /etc/group中存在
      ex:将install.log的用户组改为users
      chgrp users install.log

    • chown [-R]
      用户名必须在/etc/passwd中存在
      同时改变文件的用户和用户组
      chown user:group file

    • chmod [-R]
      rwx421
      ex:
      chmod 755 .bashrc
      chmod u=rwx,go=rx .bashrc
      chmod a+x .bahrc (a=all)

    7.4.1文件默认权限: umask

    • umask
      [-S] Symbolic 以符号显示默认权限
      看后三个,第一个是特殊权限

    x对于目录非常重要,如果没有则无法进入该目录
    同时也无法执行该目录下的命令
    w对于目录而言,则可以让用户删除更改该目录

    目录默认 777
    文件默认 666

    umask 则是该默认值需要减掉的权限
    umask
    0022

    修改umask 直接
    umask 0024

    使用符号来加减,再转换成数字

    7.4.2 文件隐藏属性 chattr lsattr

    • chattr [+ - =] [ASacdistu]
      chattr - change file attributes on a Linux file system
      [-a] 只能增加数据,只有root权限才可以设置
      [-i] 不能被删除,改名,设置链接也无法被写入或添加数据 只有root权限可以设置
      ex: 取消文件的i属性
      chattr -i attrtest

    • lsattr
      lsattr - list file attributes on a Linux second extended file system
      [-a] all 显示隐藏文件的隐藏权限
      [-d] List directories like other files, rather than listing their
      contents.
      [-R] 递归显示

    7.4.3 文件的特殊权限:SUID SGID SBIT

    • SetUID
      文件owner 的x权限位被 s 占用,此时被称为 SetUID

      • SUID只对binary有效
      • 执行者需要对程序有x权限
      • SUID权限只在程序run的时候有效
      • 执行者将具有程序所有者的权限

    情景:
    一般用户vbird使用passwd修改自己只有r权限的/etc/shadow中自己用户密码

    SUID权限是passwd这个命令的
    vbird对passwd这条命令具有 x 的权限
    passwd owner 是 root
    vbird 在执行 passwd 时,因为 SUID 权限的存在 ,会暂时获得root的权限
    所以,/etc/shadow 可以被vbird执行的passwd修改

    Tips:SUID只能用于binary 不用再用shell script上

    • Set GID (file or directory)
      s在用户组 Group 占据 x 权限位 就是SGID

    对于文件用法

      • SGID对binary有用
      • 需要执行者具备 x 权限
      • 执行者在执行过程会得到 用户组的支持

    就是原本用户不在这个用户组,但在查看该文件或者目录时,使用用户组的权限

    目录用法

      • 用户对这个目录拥有r 和x权限,用户可以进入目录
      • 用户在此目录的有效用户组 将会变成该目录的用户组
      • 若用户在此目录下具有 w 权限 (可以新建文件),则用户所创建的新文件的用户组与此目录用户组相同
    • StickyBit

    只针对目录有效

    1.当用户对目录有w和x,就有w的权限
    2.当用户在该目录下创建文件或目录时,只有自己和root才可以删除自己创建的文件
    3.无法对别人的文件进行修改删除等

    SUID4
    SGID2
    SBIT1

    ex
    chmod 7666 test
    -rwSrwSrwT
    666 也就是都没有原本的x权限
    大S大T 意为空
    chmod u=rwxs,go=x test;ls -l test

    7.4.4查看文件类型:file

    • file ~./bashrc
      可以查看到文件的特殊属性和类型

    相关文章

      网友评论

          本文标题:第七章 Linux文件与目录管理 (7.3-7.4)

          本文链接:https://www.haomeiwen.com/subject/xktvmxtx.html