文件和目录权限
Posted f-h-j-11-7
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件和目录权限相关的知识,希望对你有一定的参考价值。
学linux最为重要的就是文件,即一切皆文件。所以文件的权限也很重要。我们要牢记,并正确使用它。权限不仅有普通权限还有特殊权限,当然啦不仅文件有权限,目录也有权限。下面就让我们来了解一下权限相关知识!
文件属性:
一般情况下,当我们执行 ‘ls -Al’ 命令后,终端界面上会列出当前路径下所有的目录和文件详细的权限与属性,你会看到类似下面的内容
第一列权限列代表文件的权限和属性,其各个字符含义如下图所示:
我们复习一下之前学过的知识,文件类型有[d]目录,[-]文件,[l]链接文件,[b]块设备文件,[c]字符设备文件,[p]管道等等。
第二列表示有多少个文件名连接到此节点(i-node),这就涉及到Linux的文件系统了,在内核里有一个struct inode结构体,因为在Linux中所有的设备、文件夹等都是作为文件处理的,所以该结构体也就是文件的索引节点,每一个文件都有一个索引节点,它用来记录和存放文件的基本信息和相关属性,包含权限、属性、时间、使用者及群组等,以及记录到文件内容存储块的索引,但是我们使用的命令树确是使用文件名来记录的,每个文件名都要连接到一个i-node上才有意义,因此这个属性记录的就是多少个不同的文件名连接到同一个i-node索引节点上。
第三列表示这个文件的所有者。
第四列表示这个文件的所属用户组。
第五列表示这个文件的容量大小,默认单位为B。
第六列为这个文件的创建日期或者是最近的修改日期。
第七列是文件名,文件名第一个字符为. 表示隐藏文件。
目录与文件的权限意思
权限对于文件的意义
- r : 可读取此文件的内容。
- w : 可以编辑、新增或者是修改该文件的内容,不包括删除权限。
- x : 具有被系统执行的权限。在Linux下面,文件是否能被当前用户执行是由该标志唯一判断的。
以上主要都是针对文件的内容而言,与文件名本身没有绝对的关系
权限对于目录的意义
- r : 具有读取目录结构列表的权限。
- w : 具有更改该目录结构列表的权限,包括新建、删除、重命名、拷贝移动等。
- x : 具有进入该目录成为工作目录的权限。
文件和目录其实是一样的原理,因为在文件系统中,不管是文件、设备还是目录都是作为一个inode节点来记录的,而实际数据则放置在block中,这些block由inode索引。当具有r权限时,也就可以读取block中的内容,对于目录来说,目录结构列表就是目录的内容;当具有w权限时,也就意味着可以修改block中的内容;当具有x权限,就可以将block中的内容加载到内存中,对于目录来说也就是切换到工作目录
文件系统特性
对一个分区进行格式化后,在这个分区里就形成了文件系统,在文件系统中有以下三个比较重要的概念:
super block: 记录此文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等;
inode: 记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码;
block: 实际记录文件的内容,一个文件根据文件大小占用一个或多个block。
回到一开始的问题,当我们在Linux下的ext2文件系统新建一个目录时,ext2会分配一个inode与至少一块block给该目录。其中,inode记录该目录的相关权限与属性,并可记录分配到的那块block号码;而block则是记录在这个目录下的文件名与该文件名占用的inode号码数据。所以,inode本身并不记录文件名,文件名的记录是在目录的block中。因为对目录具有r权限,所以我们可以看到记录在block中的文件名,但是因为没有x权限,所以我们无法去读目录里的文件的inode信息。
chown 修改文件的owner
chown 用户名 文件/目录名
-R 递归同时修改目录下的子文件子目录
--reference 文件1 文件2 将文件1的owner设置给文件2
chown owner.group 或 owner:group 文件名 可以同时修改文件的owner和group 仅root
chgrp 修改文件的group
chgrp 组名 文件/目录名
owner 可以修改文件的属于组,但owner一定要属于目标组
-R 递归
--reference 文件1 文件2 将文件1的group设置给文件2
rwx权限
文件
当仅r权限作用在文件上的时候,表示可以读取该文件的内容 cat less
当仅w权限作用在文件上的时候,表示可以修改该文件的内容 gedit vi vim nano > >>
当仅x权限作用在文件上的时候,无作用
当rw权限同时作用在文件上的时候,表示可以读写该文件
当rx权限同时作用在文件上的时候,表示可以读并能执行该文件
当wx权限同时作用在文件上的时候,权限等同于仅w权限
rwx
目录
当仅r权限作用在目录上的时候,可以短列出目录的内容(子文件,子目录名)
当仅w权限作用在目录上的时候,无作用
当仅x权限作用在目录上的时候,可以进入该目录
当rw同时作用在目录上的时候,权限等同于仅r
当rx同时作用在目录上的时候,表示可以长列出,可以进入
当wx同时作用在目录上的时候,可以创建及删除文件或目录。
当rwx同时作用在目录上的时候,可以列出可以创建删除可以进入。
chmod
符号模式
ugo +-= rwx
a=ugo 或=左边省略
=右边省略表示---
数字模式
rwx rw- r--
r:4
w:2
x:1
1:x
2:w
3:wx
4:r
5:rx
6:rw
7:rwx
umask
umask查询umask
umask xxx 设置umask
chmod a+X * 当批量增加x权限时,x只增加到目录上,而跳过文件,如果某文件本身在ugo任意一位上有x,则不会被跳过
cp -f src dst 当操作的用户对dst没有w权限时,则不能直接覆盖,可以使用-f,进行删除再创建(前提是,操作的用户对该目录有wx权限)
练习
1、当用户xiaoming对/testdir目录无执行权限时,意味着无法做哪些操作?
只有rw时,可以短列出
2、当用户xiaoqiang对/testdir目录无读权限时,意味着无法做哪些操作?
只有wx时,可以创建及删除,可以进入
3、当用户wangcai对/testdir目录无写权限时,该目录下的只读文件file1是否可修改和删除?
只有rx权限时,不能,不能
4、当用户wangcai对/testdir目录有写和执行权限时,该目录下的只读文件file1是否可修改和删除?
只有wx权限时,不能修改,可以删除
1、复制/etc/fstab文件到/var/tmp下,设置文件所有者为wangcai读写权限,所属组为sysadmins组有读写权限,其他人无权限
useradd wangcai groupadd sysadmins chown wangcai.sysadmins /etc/fstab chmod 660 fstab cp -p /etc/fstab /var/tmp
2、误删除了用户wangcai的家目录,请重建并恢复该用户家目录及相应的权限属性
[[email protected] ~]# mkdir /home/wangcai [[email protected] ~]# cp -r /etc/skel/. /home/wangcai [[email protected] ~]# chmod 770 /home/wangcai -R [[email protected] ~]# ll -a /home/wangcai/ total 12 drwxr-xr-x. 3 wangcai wangcai 78 Apr 11 12:59 . drwxr-xr-x. 8 root root 79 Jul 19 07:16 .. -rw-r--r--. 1 wangcai wangcai 18 Apr 11 08:53 .bash_logout -rw-r--r--. 1 wangcai wangcai 193 Apr 11 08:53 .bash_profile -rw-r--r--. 1 wangcai wangcai 231 Apr 11 08:53 .bashrc drwxr-xr-x. 4 wangcai wangcai 39 Jul 11 01:15 .mozilla
3、创建用户liubei,guanyu,zhangfei,要求三用户同属于一个附加组shuguo
useradd liubei useradd guanyu groupmems -g shuguo -a liubei [root@localhost etc]# groupmems -g shuguo -a guanyu [[email protected] etc]# groupmems -g shuguo -a zhangfei [[email protected] etc]# groupmems -g shuguo -l
4、创建目录/app/house,要求owner为liubei,仅刘关张对该目录有完整权限,其他人无任何权限
[[email protected] ~]# mkdir /app/house [[email protected] ~]# chown liubei.shuguo /app/house [[email protected] ~]# chmod 770 /app/house/
5、分别使用刘关张三用户在house创建各自的room目录,名为xxx_room,要求各自的room只能自己有完整权限,其他人没有任何权限
[[email protected] ~]# su liubei [[email protected] root]$ mkdir /app/house/liubei_room [liubei@localhost root]$ chmod 700 /app/house/liubei_room/ [liubei@localhost root]$ ll -d /app/house/liubei_room/
6、创建一个共享目录为/app/house/common,要求刘关张在该目录下所创建的文件,彼此之间都可以读写,其他人无任何权限。
[[email protected] ~]# mkdir /app/house/common [[email protected] ~]# chmod 777 /app/house/common/ [[email protected] ~]$ touch /app/house/common/hehe.txt [liubei@localhost ~]$ chmod 760 /app/house/common/hehe.txt [root@localhost ~]# chgrp shuguo /app/house/common -R
以上是关于文件和目录权限的主要内容,如果未能解决你的问题,请参考以下文章
在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途
Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段
Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段