27.centos7基础学习与积累-013-文件和目录的权限
从头开始积累centos7系统运用
大牛博客:
https://blog.51cto.com/yangrong/p5
文件的权限
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]# \rm 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 /]# \rm -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.
示例:创建软链接:
[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.画图解释(逻辑题)
27.centos7基础学习与积累-013-文件和目录的权限的更多相关文章
- 26.centos7基础学习与积累-012-文件和目录的属性
从头开始积累centos7系统运用 大牛博客:https://blog.51cto.com/yangrong/p5 1.文件的属性(文件的信息描述): [root@python01 ~]# ls -l ...
- 25.centos7基础学习与积累-011-课前考试二-命令练习
从头开始积累centos7系统运用 大牛博客:https://blog.51cto.com/yangrong/p5 取IP地址: 6的命令:ifconfig eth0 7的命令 [root@pytho ...
- 23.centos7基础学习与积累-009-linux目录
从头开始积累centos7系统运用 大牛博客:https://blog.51cto.com/yangrong/p5 linux目录的特点: 1. /是所有目录的顶点. 2. 目录结构像一颗倒挂的树. ...
- 20.centos7基础学习与积累-006-软实力-画图
从头开始积累centos7系统运用 亿图是用指南 安装亿图软件 修改基础配置 路径:文件==>选项==>常规 需要修改的参数: 撤销次数:256 自动保存间隔:2分钟 路径:文件==> ...
- 17.centos7基础学习与积累-003-命令练习01
1.从头开始积累centos7系统运用 大牛博客:https://blog.51cto.com/yangrong/p5 linux命令的学习: 创建目录:mkdir mkdir /data mkdir ...
- 24.centos7基础学习与积累-010-上机考核命令练习
从头开始积累centos7系统运用 大牛博客:https://blog.51cto.com/yangrong/p5 1.创建目录/data/oldboy,并且在该目录下创建文件oldboy.txt,然 ...
- 22.centos7基础学习与积累-008-系统调优及安全设置
从头开始积累centos7系统运用 大牛博客:https://blog.51cto.com/yangrong/p5 1.关闭selinux功能: SELinux(Securety-EnhancedLi ...
- 19.centos7基础学习与积累-005-命令总结01
从头开始积累centos7系统运用 大牛博客:https://blog.51cto.com/yangrong/p5 1.查看命令帮助的方法: --help 适用于一般命令,非内置命令 man 适用于 ...
- 18.centos7基础学习与积累-004-分区理论
1.从头开始积累centos7系统运用 大牛博客:https://blog.51cto.com/yangrong/p5 1.常规分区:数据不是特别重要的业务(集群的某个节点) /boot 引导分区 ...
随机推荐
- xcode简单教程
1.使用Xcode软件.Xcode是一个苹果系统上的集成开发环境(IDE),就是说用Xcode就能编写C语言程序,并编译运行.也能开发ios程序等,是一种软件.在windows上类似这种能编c语言的还 ...
- 通过下载git包来安装git
Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.而国外的GitHub和国内的Coding都是项目的托管平台.但是在使用Git工具的时候,第一步要学会如何安装gi ...
- [Mobi] 移动端应用技术选型的思考, Native, Flutter, Quasar, React Native
今天我主要是从开发 **不同产品** 和 **技术力量差别** 两个方面来做一个比较: Native 除了两端的技术力量要求高.花的功夫多,没毛病,看你有没有这个实力. Flutter 通过实现中间层 ...
- jdk7中hashmap实现原理和jdk8中hashmap的改进方法总结
1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端. 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大.但数组的二分查找时间复杂度小,为O(1 ...
- 处理登录时,AJAX的状态码无权限情况
$.ajaxSetup({ complete: function(XMLHttpRequest, textStatus) { }, error:function(jqXHR,textStatus,er ...
- [转帖]Hyperledger Fabric 学习一:简介
Hyperledger Fabric 学习一:简介 https://www.jianshu.com/p/f971858b70f3?utm_campaign=maleskine&utm_cont ...
- mysql 启动 && 停止
启动:service mysql start关闭:service mysql stop查进程:ps aux | grep mysql杀进程:kill -9 mysqlID Good Good Stud ...
- Linux 线程间的同步与互斥
在线程并发执行的时候,我们需要保证临界资源的安全访问,防止线程争抢资源,造成数据二义性. 线程同步: 条件变量 为什么使用条件变量? 对临界资源的时序可控性,条件满足会通知其他等待操作临界资源的线程, ...
- Go MongoDB官方数据库驱动之增删改查
package main import ( "context" "fmt" "log" "go.mongodb.org/mongo ...
- Tcl语言学习--基础知识
一.脚本.命令和单词符号 一个TCL脚本可以包含一个或多个命令.命令之间必须用换行符或分号隔开. 1.关键字/变量 变量是程序的基础变量组成:变量名.变量值变量名要求:任何字符串都可以作为变量名,区分 ...