week2(1)权限管理

一、查看文件类型的方法
–普通文件
d 目录文件(蓝色)
b 设备文件(块设备)
c 设备文件(字符设备)
s 套接字文件
p 管道文件
l 链接文件(淡蓝色)
常用的有普通文件、目录文件、链接文件
1.ls -l 文件名 (看第一个字符)
eg:ls -l anaconda.ks-cfg 为普通文件
在这里插入图片描述
ls -l a 为目录文件
在这里插入图片描述
2.file命令
eg:file anaconda.ks-cfg
在这里插入图片描述
3.stat命令
在这里插入图片描述
二、find 的参数
-name
按照文件名查找文件。
-perm
按照文件权限来查找文件。
-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user
按照文件属主来查找文件。
-group
按照文件所属的组来查找文件。
-mtime -n +n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
-nogroup
查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2
查找更改时间比文件file1新但比文件file2旧的文件。
-type
查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
另外,下面三个的区别:
-amin n
  查找系统中最后N分钟访问的文件
  -atime n
  查找系统中最后n24小时访问的文件
  -cmin n
  查找系统中最后N分钟被改变文件状态的文件
  -ctime n
  查找系统中最后n
24小时被改变文件状态的文件
 -mmin n
  查找系统中最后N分钟被改变文件数据的文件
  -mtime n
  查找系统中最后n*24小时被改变文件数据的文件
eg:find . -group root -exec ls -l {} ; 查看系统中所有属root组的文件
在这里插入图片描述
eg: find / -type f -size 0 -exec ls -l {} ;查看系统所有长度为0的普通文件,并列出路径
在这里插入图片描述
eg: find . -type f -perm 644 -exec ls -l {} ;让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件
在这里插入图片描述
三、文件管理
1.创建
文件 touch
创建单个文件 直接touch 文件名
eg: touch file1
一次创建多个文件
touch file2 file3
在这里插入图片描述
touch file{a…c}
在这里插入图片描述
touch file{1,2,3}
在这里插入图片描述
目录 mkdir
创建单个目录 mkdir 目录名
eg:mkdir dir1
一次创建多个同级目录
mkdir /home/{dir1,dir2,dir3}
在这里插入图片描述
创建多个嵌套目录(-p)
mkdir -pv /home/d1/d2/{yang/dir{4,5,6}}
在这里插入图片描述

四、软、硬链接的区别
索引的概念:Linux文件系统使用索引节点来记录文件信息,作用类似于Windows下的文件分配表。索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。 
  linux文件系统将文件索引节点号和文件名同时保存在目录中。  
对于一个文件来说有唯一的索引节点号与之对应,对于一个索引节点号, 却可以有多个文件名与之对应。 
 因此,在磁盘上的同一个文件可以通过不同的路径去访问它。

软链接可以看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录。
硬链接则透过文件系统的inode来产生新档名,而不是产生新档案。
创建方法 :
软链接(符号链接) ln -s source target
硬链接 (实体链接)ln source target
硬链接是多个档名对应同一个inode,硬链接只是在某个目录下新增一笔档名链 接到某个inode号码的关联记录而已。如果将上图中任何一个档名删除,档案的inode与block都还存在,依然还可以通过另一个档名来读取正确的档 案数据。此外,不论用哪一个档名来编辑,最终的结果都会写入相同的inode和block中,因此均能进行数据的修改。
软链接是建立一个独立的文件,而这个文件会让数据的读取指向它link的那个档案的档名,由于只是作为指向的动作,所以当来源档案被删除之后,软连接的档案无法开启,因为找不到原始档名。连结档的内容只有档名,根据档名链接到正确的目录进一步取得目标档案的inode,最终就能够读取到正确的数据。如果目标档案的原始档名被删除了那么整个环节就进行不下去了。
eg: 现有两个文件 一个名为aaa ,另一个名为ccc;
在这里插入图片描述
在这里插入图片描述
给aaa创建一个硬链接
ln aaa aaahard
在这里插入图片描述
在创建链接前,aaa显示的链接数目为1,创建链接后
1.aaa和aaahard的链接数目都变为2。
2.aaa和aaahard的inode号是一样的,都是33579676。
3.aaa和aaahard显示的文件大小也是一样,都是17B。
ln命令的操作结果:aaa和aaahard是同一个文件的两个名字, 它们具有同样的索引节点号和文件属性,建立文件aaa的硬链接,就是为 aaa的文件索引节点在当前目录上建立一个新指针。你可以删除其中任何一个,如rm aaa,每次只会删除一个指针,链接数同时减一,只有将所有指向文件内容的指针,也即链接数减为0时,内核才会把文件内容从磁盘上删除。
给ccc创建一个软链接
ln -s ccc cccsoft
在这里插入图片描述
区别:
1.硬链接原文件/链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件/链接文件拥有不同的inode号,表明他们是两个不同的文件;
2.在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;
3.链接数目是不一样的,软链接的链接数目不会增加;
4.文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的。而这里软链接显示的大小与原文件就不同了,ccc大小是8B,而BBBsoft是3B。因为ccc共有3个字符
5.软链接没有任何文件系统的限制,任何用户可以创建指向目录的符号链接
总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。
软链接的缺点:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。
练习:
在这里插入图片描述
创建用户 useradd student
进入用户目录 cd /home/student/
创建空目录 mkdir tmp
进入tmp cd /home/student/tmp/
创建a.txt touch a.txt
复制a.txt 命令为b.txt cp a.txt b.txt
重命名b.txt为 c.txt mv b.txt c.txt
创建c.txt的符号链接 名为 linkc.txt ln -s c.txt linkc.txt
压缩文件 tar -czvf /home/student/tmp/etc.tar.gz /etc
创建空目录 mkdir backups
解压文件到指定目录 tar -xzvf etc.tar.gz -C /home/student/tmp/backups/
五、基本权限
设置基本权限(r,w,x)r 4, w 2, x 1
权限对象属主(u)属组(g)其他人(o)
chown 设置属主的权限
cherp 设置属组的权限
更改权限的方法
1.使用符号
对象 赋值符 权限类型
u + r 给用户加上读的权限
在这里插入图片描述
chmod g - r file1 给file去掉写的权限
在这里插入图片描述
o=x 给其他人可执行的权限
在这里插入图片描述
2.使用数字
chmod 644 file 给file的属主可读可写的权限、给属组和其他人只读的权限
在这里插入图片描述
文件:
r:具有读取内容的权限
w:具有新增、修改、删除文件内容的权限
x:具有执行文件的权限
目录:
r:具有浏览目录的权限
w:具有新建、删除、修改、移动目录内文件的权限
x: 具有进入目录的权限
测试:1.在root家目录下创建一个临时目录tmp给644的权限,进入普通用户alice下查看能否进入目录tmp
在这里插入图片描述
给目录tmp加上可执行权限
在这里插入图片描述
结论;目录的只读访问不允许使用cd 进入目录,必须要有执行的权限才能进入,
2.在创建的tmp目录下创建目录a,在目录a下新建文件file 。tmp(641) a(641) file(644)
在这里插入图片描述
不能执行删除操作
在这里插入图片描述
结论:只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录需要可读权限,加上可读权限可以看到目录下的文件,也可看到文件内容,不能对文件进行写和删除的操作
3.给目录tmp、a权限为643,文件file权限为644
在这里插入图片描述
对文件可以做删除操作,不能做修改操作
结论:看文件是否能被删除,主要看文件所在的目录的是否具有写的权限。
基本权限ACL
ACL提供的是在所有者、所属组、其他人的读/ 写/执行权限之外的特殊权限控制,setfacl命令可以针对单一 用户或用户组、单一文件或目录来进行读/写/执行权限的控制
eg: setfacl -m u:user:rwx file|directory
在这里插入图片描述
现在有一个文件aaa属主和属组都是root,other只有r权限,如果让用户tom对a有rw权限但是除了tom在other中的其他人都只有r权限
在这里插入图片描述
执行setfacl命令后使用getfacl命令可以看到alice已经拥有rw权限了,进入alice验证
在这里插入图片描述
上述实验证实了针对tom的权限修改成功了。alice可以对aaa文件进行写入操作,而在other中的其他人就不行。
ACL高级用法
mask:临时降低用户或组的权限
defult:继承
eg: 要求alice能够对/home以及以后在/home下新建的文件 有读、写、执行权限
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wq962464/article/details/82851736
今日推荐