zoukankan      html  css  js  c++  java
  • 27.centos7基础学习与积累-013-文件和目录的权限

    从头开始积累centos7系统运用

    大牛博客:

    https://blog.51cto.com/yangrong/p5

    https://blog.oldboyedu.com/

    文件的权限

    rw-r--r-- 1 root root   aduser.txt

    r:read 读  4

    w:write 写 2

    x:execute 执行 1

    -:没有权限 0

    当selinux开启是创建文件及文件夹会有点,关闭则没有。

    [root@python01 ~]# ls -lhi
    total 24K
    100663363 -rw------- 1 root root 1.6K May 24 23:28 anaconda-ks.cfg
    101300544 -rw-r--r--.  1 root root  15K Oct  3  2017 epel-release-latest-7.noarch.rpm
    100663373 crw-r--r--   1 root root 5, 1 Aug 12 16:49 erictse
    100663393 brw-r--r--   1 root root 5, 1 Aug 12 16:50 erictseb
       420853 drwxr-xr-x   2 root root   37 Aug 12 11:43 honortone
       690709 drwxr-xr-x   7 root root  171 Jul 11 11:23 oldboy
     33575402 drwxr-xr-x  26 root root 4.0K Jun 18 10:50 test

    [root@python01 ~]# ls -lhi /etc/

    链接的概念:

    在linux系统中,链接可分为两种:一种为硬链接(Hard Link),另一种为软链接或符号链接(Symbolic Link or Soft link)。

    ln这个命令就是创建链接文件的,在默认不带参数的情况下,执行ln命令创建的链接就是硬链接。

      如果使用ln -s创建链接则为软链接,前面文件类型为l(字母L)的是软链接。

      实践直观演示理解。

      硬链接:ln  源文件 目标文件

      软链接:ln -s 源文件 目标文件(目标文件不能事先存在)

      

    1.1硬链接

      硬链接是指通过索引节点(Inode)来进行链接。在linux文件系统中,保存在磁盘分区中的文件

    不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(Index Inode)简称Inode,

    即在系统中文件的编号。

    [root@python01 oldboy]# echo 1 >a
    [root@python01 oldboy]# ls -l a
    -rw-r--r-- 1 root root 2 Aug 13 11:17 a
    [root@python01 oldboy]# ln a b
    [root@python01 oldboy]# ls -l a
    -rw-r--r-- 2 root root 2 Aug 13 11:17 a
    [root@python01 oldboy]# cat a
    1
    [root@python01 oldboy]# cat b

    [root@python01 oldboy]# ls -hil a b
    690706 -rw-r--r-- 2 root root 2 Aug 13 11:17 a
    690706 -rw-r--r-- 2 root root 2 Aug 13 11:17 b

    硬链接是文件的入口:当一个文件被删了后源文件还是存在的并且可以查看文件内容

    [root@python01 oldboy]# m a
    [root@python01 oldboy]# ls -hil a b
    ls: cannot access a: No such file or directory
    690706 -rw-r--r-- 1 root root 2 Aug 13 11:17 b
    [root@python01 oldboy]# cat b
    1

    文件名与源文件是引用指向的关系,当两个文件名都被删了,那么源文件就只有等待被系统回收的命运,

    类似开发的引用数据类型,

     文件删除原理:

    在linux系统中,删除静态文件(没有进程调用)(目录也是文件)的条件是与之相关的所有硬链接文件均被删除。

     1.2软链接:

       软链接(Soft Link)也称为符号链接(Symbolic Link)。linux里的软链接文件就类似windows系统中的快捷方式。

    linux里面的软链接实际上是一个特殊的文件,文件类型是l。软链接文件实际上可以理解为一个文本文件,

    这个文件中包含有软链接指向另一源文件的位置消息内容,因此,通过访问这个快捷方式就可以迅速定位到软链接所指向的源文件实体。

    [root@python01 oldboy]# echo 1 >file
    [root@python01 oldboy]# ln -s file file_soft
    [root@python01 oldboy]# ls -li file file_soft
    690706 -rw-r--r-- 1 root root 2 Aug 13 15:44 file
    690728 lrwxrwxrwx 1 root root 4 Aug 13 15:44 file_soft -> file

    区别:inode不一样,文件类型不一样,文件权限也不一样,指向源文件

    面试题:给用户唯一的入口

    ln -s /application/apache2.2.17  /application/apache

    [root@python01 /]# ls -ld /application/apache
    lrwxrwxrwx 1 root root 25 Jul 12 09:12 /application/apache -> /application/apache2.2.17
    [root@python01 /]# m -f /application/apache
    [root@python01 /]# ls -ld /application/apache
    ls: cannot access /application/apache: No such file or directory
    [root@python01 /]# mkdir -p /application/apache2.4.2
    [root@python01 /]# ls /application/
    apache2.2.17  apache2.4.2
    [root@python01 /]# ln -s /application/apache2.4.2  /application/apache
    [root@python01 /]# ls -ld /application/apache       
    lrwxrwxrwx 1 root root 24 Aug 13 16:15 /application/apache -> /application/apache2.4.2

    目录的小结:

    目录没有硬链接,只有软链接

    示例:创建硬链接

    [root@python01 oldboy]# mkdir oldboygirl
    [root@python01 oldboy]# ls
    123.log  file       jeacen      oldboy      test     xiaodong  xingfujie
    ext      file_soft  nginx.conf  oldboygirl  wodi.gz  xiaofan   yingsui.gz
    [root@python01 oldboy]# ln oldboygirl  oldboygirl_hard_link
    ln: ‘oldboygirl’: hard link not allowed for directory

    原因:目录的硬链接不能跨越文件系统(从硬链接原理可以理解,)

    . 点是当前目录的硬链接

    ..点点是上级目录的硬链接

    统计目录的硬链接

    [root@python01 oldboy]# ll -lhid /etc/
    67156609 drwxr-xr-x. 78 root root 8.0K Jul 15 14:13 /etc/
    [root@python01 oldboy]# find /etc/ -type d -maxdepth 1 |wc -l
    find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it).  Please specify options before other arguments.

    77

    示例:创建软链接:

    [root@python01 oldboy]# ln -s oldboygirl  oldboygirl_hard_link

    描述linux下软链接和硬链接的区别

    1.默认不带参数情况,ln命令创建的是硬链接,带-s参数的ln命令创建的是软链接。

    2.硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点与源文件不同。

    3.ln命令不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到。

    4.删除软链接文件,对源文件及硬链接文件无任何影响;

    5.删除文件的硬链接文件,对源文件及软链接文件无任何影响;

    6.删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状);

    7.同时删除源文件及硬链接文件,整个文件才会被真正的删除。

    8.很多硬件设备中的快照功能,使用的就是类似硬链接的原理。

    9.软链接可夸文件系统,硬链接不可以跨文件系统。

    思路1:

    1.介绍软链接的概念。

    2.如何创建软链接

    3.对于文件的软硬链接区别

    4.对于目录的软硬链接区别

    5.画图解释(逻辑题)

  • 相关阅读:
    Qt状态机实例
    <STL> accumulate 与 自定义数据类型
    <STL> 容器混合使用
    散列表(C版)
    Canonical 要将 Qt 应用带入 Ubuntu
    <STL> set随笔
    C++ 文件流
    视频播放的基本原理
    <STL> pair随笔
    c++ 内存存储 解决char*p, char p[]的问题
  • 原文地址:https://www.cnblogs.com/ericchengge677/p/11349753.html
Copyright © 2011-2022 走看看