0319 第四次课:文件目录管理2

文件目录管理2

1、文件特殊权限

 

  • 隐藏权限lsattr_chattrhtml

     

  1. 设置隐藏权限node

    命令:chattr 用来修改文件系统的权限属性linux

    chatrr 只有 root 用户可使用,用来修改文件系统的权限属性,创建凌驾于 rwx 基础权限之上的受权。windows

  • 经常使用参数及权限说明:工具

    参数 参数说明
    + 增长权限
    - 删除权限
    = 等于某权限
    属性 对象 属性说明
    i 文件 不容许对文件进行增、删、改操做
    i 目录 只能对目录下的文件中的数据进行操做,不能新建和删除文件
    a 文件 只容许对文件进行增长数据,不能进行修改和删除
    a 目录 只能在目录下新建和修改文件,不能进行删除文件
  1. 查看隐藏权限学习

    命令:lsattr 查看文件或目录的隐藏权限测试

    经常使用参数说明:ui

    参数 参数说明
    a 显示全部的文件或目录,包括隐藏的
    R 递归显示目录文件及子目录下的文件
  • 示例
  1. 测试i属性文件权限3d

    新建一个测试文件,使用chattr +i 赋予i权限,使用lsattr命令查看日志

    对此文件进行删除、更名、修改操做

    

  1. 测试i的目录权限

    新建一个测试目录,使用chattr +i 赋予i权限,使用lsattr命令查看

    在该目录下进行新建删除文件

    对该目录下已经存在的文件进行数据修改

  2. 测试文件a权限

    新建一个测试文件,添加a权限,并进行删除修改操做


     

  3. 测试目录a权限

    新建一个目录添加a权限,在该目录下进行新建、删除、修改操做

 

  • 特殊权限-set_uid

    1.什么是set_uid权限?

    经过上图能够看到passwd这个命令的权限是rwsr,多了一个s权限,这个s就是set_uid权限。

    2.set_uid的做用

    set_uid的做用就是让普通用户临时拥有某个命令全部者的权限。如普通用户进行修改密码须要/etc/passwd和/etc/shadow的权限,可是它们全部者是root,普通用户没有权限,这时把它们加上set_uid让普通用户临时拥有权限就能够就行密码修改操做了。

    3. 设置set_uid权限

    使用普通用户使用ls命令查看root目录

    能够看到,普通用户ls加上set_uid权限就临时拥了有查看root目录的权限,而没有加上set_uid的cd就没有进入root的权限

    4.其它知识点

    ls加上了set_uid权限,没有了x权限为何还能执行?

    由于s权限就有x的权限,因此root能够执行,其它用户自己就有x的权限因此能够执行。  

  • 特殊权限-set_gid

    set_gid和set_uid相似,它不只仅能够做用在文件上还能够做用在目录上,当它做用于文件时和set_uid相似。当它做用于目录时,任何用户建立子目录或文件时的所属组都和该目录的具备的所属组保持一致。

    1.在目录上赋予s权限测试

    新建一个123目录,并在123目录下建立一个1.txt文件,查看它的所属组是root

    给123目录加上s权限,并修改所属组为wxy。新建一个2.txt文件,而后查看2.txt所属组为wxy。说目录明加上set_gid权限后,建立子目录或文件时的所属组都和该目录的具备的所属组保持一致。

  • 特殊权限-stick_bit

    stick_bit的权限是防删除(root用户除外),只做用于目录。

    系统中/tmp就是一个stick_bit权限目录。t就是stick_bit权限

    1.stick_bit权限的做用

    tmp是系统的临时文件目录,全部的用户在该目录下都拥有777权限,能够任意建立、修改、删除文件。那若是用户A在该目录下建立了一个文件,用户B将该文件删除了,这种状况咱们是不能容许的。为了达到该目的,就出现了stick bit的概念。它是针对目录来讲的,若是该目录设置了stick bit,则该目录下的文件除了该文件的建立者和root用户能够修改,其它用户只能修该不能进行删除,这就是它的做用。

    2.设置stick_bit权限

    新建一个/test目录,赋予stick_bit和777权限,切换到wxy用户并在/test下新建一个1.txt

    再切换到wxy02用户,进行删除/test/1.txt,发现没法删除。

2、软链接/硬连接

  • 软链接

    软链接相似于windows中的快捷方式。软链接就是一个链接文件,它会指向另一个文件或目录。

    1.建立软链接

    命令: ls -s 源文件 目标文件

    软链接注意事项:

    (1)源文件删除或者更名后,软链接会失效。

    (2)尽可能使用绝对路径

    (3)删除软链接目录时,路径后面不要加/ ;

    建立一个软链接,源文件为/home/test/1.txt 目标文件为/root/11.txt

    2.软链接的用处

    节省磁盘空间,链接文件自己很小。如想使用某个大文件,可是须要更名可是源文件又不能删除,这时cp就很是占用空间,软链接就能够解决这种问题.

  1. 使用场景

    如/boot/下有个run.log一直在写入系统日志,可是boot空间快要满了,可是其它目录还有不少空间。这时就能够cp /boot/run.log /xxx/run.log ,而后删除/boot/run.log ,而后再作个软件连:ln -s /boot/run.log /xxx/run.log

  • 硬连接

    学习硬连接以前,先来了解下:inode:

    在Linux的文件系统中,保存在磁盘分区中的文件不论是什么类型都会给它分配一个编号,这个编号被称为索引节点编号号也叫inode。

    若是建立的新文件和另一个文件的inode相同,那它们就是互相为硬连接。

    注意点:

    (1)硬连接没法做用于目录,只能对文件。

    (2)硬连接没法跨分区。

    (3)硬连接不占用双份空间。

    (4)硬连接能够删除,可是最少留一个inode。

    建立硬连接:

    ln 文件1 文件2 这种方式就是建立硬连接。

    建立完成后使用ls -i(查看文件inode),能够看到它们inode号相同。

3、find命令

   find命令是用来查找文件的命令。

   除了find还有一些其它不经常使用的查找命令:whereis、locate。这些命令都不经常使用这里就很少介绍,主要仍是find命令。

  • 终端上快捷键操做

    快捷键 说明
    Ctrl + l 清屏
    Ctrl + u 删除光标前的
    Ctrl + d 删除光标后面的
    Ctrl + e 光标挪到最后
    Ctrl + a 光标挪到最前面
  • find 详细介绍

    语法: path -option [ -print ] [ -exec -ok command ] {} ;

    find 经常使用选项说明:

    表达式 说明
    type 文件类型,如d:目录,f:文件,l:链接符等
    size 按文件大小进行查找,经常使用单位:k, M, G
    name 安文件名称进行查找
    atime n 按文件最后访问时间查找文件,-n指n天之内,+n指n天之前
    mtime n 按文件最后改变时间查找文件,-n指n天之内,+n指n天之前
    ctime n 按文件最后修改时间来查找文件,-n指n天之内,+n指n天之前
    amin n 按文件最后访问时间查找文件,-n指n分钟之内,+n指n分钟之前
    mmin n 按文件最后改变时间查找文件,-n指n分钟之内,+n指n分钟之前
    cmin n 按文件最后修改时间查找文件,-n指n分钟之内,+n指n分钟之前
  • 扩展知识点

    stat命令,用于显示文件或文件系统的详细信息。主要用来查看文件的时间戳。

    使用stat命令查看到文件有三个时间戳:

    Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间

    Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。

    Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如大小,权限,Blocks数。

  • find命令示例:

  1. 查找指定目录下以.txt结尾的文件

    find /home/ -name "*.txt"

  2. 查找指定目录下以.txt或.sh结尾文件

  3. 查找指定目录3天之前修改过的文件

  4. 查找指定目录3天之前查看过的文件

  5. 查找3天之内修改过的文件

  6. 目录下有1/ 2/ 3/这几个目录,忽略其中2/目录进行查找包含*.txt的文件

    find . -path ./2 -prune -o -type f -name "*.txt" -print

  7. 查找大于10k的文件

  8. 查找大于20M的文件

  9. 查找大于10k的文件,并删除

    find /home/ -type f -size +10k -exec rm {} \;

  10. 查找30天之前的*.txt文件,并更名为*.txt.bak

    find /root/ -type f -name "*.txt" -ctime +30 -exec mv {} {}.bak \;

    改完名后再进行查找

4、关于文件的其余知识点

  • 文件类型

一谈到文件类型,你们就能想到Windows的文件类型,好比file.txt、file.doc、file.sys、file.mp三、file.exe等,根据 文件的后缀就能判断文件的类型。但在Linux一个文件是否能被执行,和后缀名没有太大的关系,主要看文件的属性有关。但Linux文件的后缀名仍是有必要的,特别是咱们本身建立一些文件,最好仍是加后缀名,这样作的目的是仅仅是为了咱们的在应用时方便。

  • windos和linux互传文件

    使用lrzsz工具进行文件传输,这个只能在xhsell和secureCRT使用

    安装:

    yum -y install lrzsz

    linux传windos:

    命令:sz 文件名

    sz +文件名,选择windows存放的目录,点击回车便可

    会提示传输完成

    windos传linux

    命令:rz

    使用rz就会打开windows文件窗口,选择文件点击“打开”便可

5、课堂笔记

相关文章
相关标签/搜索