文章来源:http://www.examda.com/linux/fudao/20100707/094403862-1.html
一、用户对文件或目录都有哪些权限?
四种:读、写、执行、没有权限
二、如何表示这四种权限?
如果用十进制数字表示,分别为:4、2、1、0;如果用字符表示,分别为:r、w、x、-。个人觉得,使用chmod命令更改文件或目录权限时,数字表示法显然比字符表示法简洁明快
三、对于文件和目录而言,这四种权限是否具有同样的含义?
并非如此,如下所示:
---------------------------------------------------------------------------
普通文件 目录
r:用户拥有读取该文件内容的权限 用户拥有列出其中文件列表的权限
w:用户拥有修改该文件内容的权限 用户拥有在其中创建、删除文件的权限
x:用户拥有执行该文件的权限 用户拥有进入该目录、复制其中文件的权限
----------------------------------------------------------------------------
对目录的这些各个单项权限的操作,我都有一一试验,详细结果贴在了文末,图片就不再贴出。需要提醒的是:
1、拥有某项权限,并不意味着就一定能够对文件或目录做相应的操作。
2、普通文件拥有r、w、x权限或它们权限的组合,针对的是文件内容,与文件本身的操作无关。若想对文件本身进行删除、移动等操作,需要其上层目录的权限,下面会讲到。
四、为什么要同时设定三组用户的权限?
这是因为linux里文件或目录的权限是和用户管理联系在一起的。我们设定文件的权限时,除了设定属主的权限,还要设定属主同组用户的权限,以及其它用户的权限。关于Linux用户管理,请自行搜索相关资料。
五、为什么很多文件或目录的权限都是一个权限组合?
前面讲到,拥有某项权限并不意味着一定能够完成相应操作,原因之一就是:单一权限无法保证我们完成相应的操作,所以设定文件或目录权限时,通常使用权限的组合,这对目录的权限设定尤其重要。例如,从道理上讲,如果目录拥有w权限,我们就可以在其中新建、删除文件,但从实际的操作结果来看,这些操作无法完成,只有当目录同时拥有了x权限时,才可以进行上述的操作。-wx权限,即是一个权限组合,对目录而言,表示用户可以在其中创建、删除文件;再如常用的r-x组合:对目录来说,表示用户可以列出目录内容,复制其中的文件。可以讲,没有x权限的配合,目录的w权限就是一句空话,没有x权限的配合,就无法对目录中的内容进行任何操作,至于对目录本身的操作,由其上层目录的权限决定。能理解吧?不能进入目录的话,何谈对目录中文件进行操作呢?!
目录拥有权限组合rw-、r-x、-wx时,我们能对其中的文件或子目录作哪些操作呢?大家可以先猜测一下,然后动手试验一下,看看自己的猜测是否正确。rwx权限就不用考虑了,基本上是完全权限,当然,特殊权限除外。
六、文件或目录的权限受哪些方面的影响?
拥有某项权限并不意味着一定能够进行相应操作,并不仅仅是因为需要权限的组合,有时候就会出现这种情况:我们正确设置了文件或目录的权限组合,却仍然不能对它们进行相应的操作。这是因为,能否对文件或目录进行各种操作不但取决于文件自身的权限,还要受到其上层目录的权限的影响。本文的第三、第五部分都已经提到了这一点。要牢记它,这非常重要!
先来看文件的操作,包括两部分:对文件本身的操作,以及对文件内容的操作。
对文件本身的操作,一般是移动、复制、删除、重命名,这些所有的操作都是由其上层目录的权限决定的。能否理解?文件是目录中的文件,我们知道,linux把目录也看成一个文件,那么目录里的所有东西都可看成文件的内容,因此,目录的权限决定了目录中的文件的操作,这主要是指对文件本身的操作,对文件内容的操作,还需要文件自身权限的配合。
用户lqs的家目录里有一个目录000,其中有一个文件a.txt。家目录lqs已经设置了权限705,目录000权限设定为703,其中的 a.txt文件权限设定为700。如图所示,其它用户normal成功地删除了文件a.txt,尽管文件的权限只是700!这是因为文件的删除等操作是由上层目录的权限决定的,而文件的上层目录000的权限为703,它赋予了其它用户在其中添加、删除文件的权限。
因此我们得出结论,能否对目录中的文件本身进行移动、删除、重命名等操作,取决于其上层目录的权限。这里的文件,不但指普通文件,还包括目录文件,即目录的子目录。
对文件内容的操作,一般是指修改文件内容。对文件内容进行操作,首先其目录要有x权限,然后文件要有w权限。
对目录里的子目录的操作,与目录里文件的操作原理一致,但相应权限与前面讲到的目录操作的权限一致。这里不再一一列举。记住,要多用用chmod命令,这些东西你自然会知道。
七、特殊权限
linux里有一些特殊权限,比如s,它们需要4位十进制数字来表示。这里不谈,有兴趣可以自行了解一下。
附录:
一、权限字符表示是如何变成数字表示的?
使用ls –l命令显示文件属性的长格式时,第一个字段就是用来表示文件的种类和权限的,该字段最常见的值为-rwxr-xr-x。一共有10个字符,第一位表示文件类型,后面九位表示文件权限,这9位字符可分成3组,分别表示文件属主的权限,属主同组用户的权限,和其它用户的权限。
rwxr-xr-x表示文件属主具有读、写、执行的全部权限,属主同组用户具有可读权限,其它用户具有可读权限,用十进制数字表示,就是755。
那么,755是怎么来的?
要得出这个十进制数字,需要先把rwxr-xr-x转换成二进制。把它们用二进制数字表示的话,有某项权限即为1,没有为0,那么rwxr-xr-x的二进制表示为111 101 101。
再把111 101 101这三组二进制数字分别转换成十进制。转换算法还记得吗?从右到左,各位上的数字依次乘以2的n次方(n的取值从0开始)。如下所示:
第一组:1x20 + 1x21 +1x22 = 7
第二组:1x20 + 0x21 +1x22 = 5
第三组:1x20 + 0x21 +1x22 = 5
三组数字组合起来,即为755。
其实不用每次都把每一个字符转换成二进制,再转换成十进制,没这么麻烦。因为我们可以算出:可读权限用十进制数字表示为4,可写权限表示为2,可执行权限表示为1,没有权限表示为0,记住它们就不必每次全部转来转去了。
先来看可读权限r--,它的二进制表示为100,把它转换成十进制:0x20 + 0x21 +1x22 = 4
再来看可写权限-w-,它的二进制表示为010,把它转换成十进制:0x20 + 1x21 +0x22 = 2
最后看可执行权限--x,它的二进制表示为001,把它转换成十进制:1x20 + 0x21 +0x22 = 1
二、各个权限具体的操作试验结果如下:
目录的可读权限:可列出目录里的文件,不可重命名、复制、移动、删除其中的文件,不可进入目录
目录的可写权限:不可列出目录里的文件,不可重命名、复制、移动、删除其中的文件,不可进入目录
目录的可执行权限:不可列出目录里的文件,不可重命名、移动、删除其中的文件,可复制其中的文件,可进入目录。
分享到:
相关推荐
通过对Linux文件目录权限和属性的学习与实践,我们不仅可以更好地管理系统的安全性和稳定性,还能根据不同的应用场景灵活调整文件的访问控制策略。希望本文能够帮助大家更加深入地理解和掌握这些重要的基础知识。
这份"Linux学习笔记(强悍总结值得一看)"是Linux初学者的宝贵资源,也适合有经验的用户作为参考手册。以下是对笔记内容的详细概述: 1. **Linux常用命令**: Linux命令行是其强大的工具,掌握常用命令是Linux学习...
实验中,我们将学习如何设置权限,使得文件夹和文件可以被特定的用户或组访问和修改。 一、权限管理 在 Linux 中,权限是通过访问控制列表(ACL)来实现的。每个文件或文件夹都有三个类型的权限:所有者(owner)...
Linux 文件权限的修改命令 Linux 文件权限是 Linux 操作...本文总结了 Linux 文件权限的修改命令、rwx 权限的影响、umask 权限掩码、高等权限和提权命令,旨在帮助用户更好地理解和掌握 Linux 文件权限的修改和管理。
8.1 ACL权限:在传统的Linux文件权限系统中,每个文件或目录有三个基本权限,分别对应所有者、所属组和其他用户。ACL则扩展了这一机制,允许更精细的权限控制,包括设置额外的用户或组的读、写、执行权限。 8.2 ...
本课件主要围绕"Linux基础课件-- Linux文件权限"展开,旨在帮助学习者掌握Linux文件属性和权限控制的基本概念。 首先,我们来看Linux文件信息的基本组成。当我们使用`ll`命令列出文件或目录时,会看到一系列的信息...
从给定的文件信息中,我们可以提炼出一系列关于Linux基础学习的重要知识点,这些知识点涵盖了Linux系统安装、GRUB引导加载器的应用、系统启动过程、Shell命令行基础以及用户管理等核心领域。 ### Linux系统安装 在...
但不要以为理解文件权限需要长时间的学习。事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们。 基础概念 你要明白的第一件事是文件权限可以用来干什么。当你设置一个分组的权发生了...
1. **Linux基础应用**:在“linux基础应用学习.doc”中,可能涵盖了对Linux基本操作系统的理解和使用,包括命令行界面(CLI)的使用,如ls、cd、mkdir、rm等常用命令,文件和目录管理,权限设置,进程管理,网络配置...
实现Linux文件操作通常遵循以下步骤: 1. **初始化**:首先,需要打开一个文件,使用`open()`函数,该函数返回一个文件描述符,后续的文件操作都将通过这个描述符进行。 2. **文件操作**: - 写入:使用`write()`...
这份"Linux基础命令学习总结"压缩包文件包含了一系列与Linux基础知识相关的文档,旨在帮助初学者掌握Linux操作系统的常用命令和概念。 首先,"01-Linux基础命令.md"可能会涵盖如`ls`, `cd`, `pwd`, `touch`, `mkdir...
#### 二、Linux文件系统结构解析 Linux的文件系统结构清晰,各目录分工明确: - **home**:用户主目录。 - **bin**:存放系统常用命令。 - **sbin**:存放系统管理程序。 - **etc**:系统配置文件的存储位置。 - *...
Linux操作系统中,文件的权限和类型是文件系统管理的核心组成...总结来说,Linux文件系统通过类型和权限的管理,确保了数据的安全与系统运行的有序性。理解和掌握这些知识对于Linux系统管理员及用户来说是必不可少的。
总结来说,Linux文件系统是一个复杂而精细的设计,它结合了各种文件系统类型、虚拟文件系统抽象层以及如/proc这样的特殊文件系统,为用户提供了一致、高效的文件操作体验。通过学习Linux文件系统,我们可以更深入地...
理解Linux的权限管理也很重要,包括用户和用户组的概念,以及如何使用chmod、chown和chgrp命令来修改文件和目录的权限。此外,进程管理(如ps、kill、nohup等命令)、网络配置、日志查看、软件包管理和脚本编程也是...
通过对Linux文件基本属性的学习,我们可以更好地理解如何管理和控制文件的访问权限,这对于维护系统的安全性至关重要。了解并掌握这些基础知识对于Linux用户来说是非常有用的。无论是日常操作还是系统管理员的工作中...
`pwd`显示当前工作目录,`cd`切换目录,`mkdir`和`rmdir`创建和删除目录,`tree`展示目录结构,`chmod`和`chown`修改文件或目录的权限和所有者,`stat`提供文件详细信息,`whoami`显示当前用户,`hostname`显示主机...