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

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))