1. Linux文件的属性

关于Linux文件的属性的说明和设置请参考鸟哥Linux私房菜:Linux 的文件权限与目录配置

2. 目录和文件的权限意义

在Linux系统中,每个文件都有三种身份的权限配置,而每个身份都有三种权限(rwx)。这三种权限对于普通的文件很好理解,如下表所示,

表格 1 普通文件的rwx权限位意义

权限

说明

r

文件内容可读

w

文件内容可修改

x

文件可执行

在Window系统中,文件是否可执行是通过文件扩展名来进行识别,例如.exe或.bat等。而在Linux系统下,文件扩展名只是为了给用户直观说明文件内容的类型而已,文件是否可执行则是通过是否设置了x权限位来决定的(当然,你如果非要给一个不能执行的普通文本文件设置成可执行,那我也没办法,事实上它也执行不了)。

对于目录的rwx权限位则需要特殊进行说明了。

目录主要的内容在记录文件名列表,文件名与目录有强烈的关连啦! 所以如果是针对目录时,那个 r, w, x 对目录是什么意义呢?

    • r (read contents in directory):
      表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。
      所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!
    • w (modify contents of directory):
      这个可写入的权限对目录来说,是很了不起的!
      因为他表示你具有异动该目录结构列表的权限,也就是底下这些权限:

      • 建立新的文件与目录;
      • 删除已经存在的文件与目录(不论该文件的权限为何!)
      • 将已存在的文件或目录进行更名;
      • 搬移该目录内的文件、目录位置。

      总之,目录的w权限就与该目录底下的文件名异动有关就对了啦!

    • x (access directory):
      咦!目录的执行权限有啥用途啊?目录只是记录文件名而已,总不能拿来执行吧?没错!目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途!
      所谓的工作目录(work directory)就是你目前所在的目录啦!举例来说,当你登入Linux时,
      你所在的家目录就是你当下的工作目录。而变换目录的指令是『cd』(change directory)啰!

关于目录的r权限和x权限的验证测试:

下面我们通过对subdir目录进行操作来进行验证测试。目录subdir下具有两个文件file1和file2,

lienhua34@test$ ls -l subdir/
total
-rw-r--r-- lienhua34 lienhua34 Dec : file1
-rw-r--r-- lienhua34 lienhua34 Dec : file2

我们将subdir的所有者和所属群组都修改为root,而用户lienhua34不在群组root中,并将subdir的其他人权限设置成空,

lienhua34@test$ sudo chown -R root:root subdir
[sudo] password for lienhua34:
lienhua34@test$ sudo chmod o-rx subdir
lienhua34@test$ ls -l
total
drwxr-x--- root root Dec : subdir

此时用户lienhua34要进入该目录或者查看该目录下的文件列表均没有权限,

lienhua34@test$ cd subdir/
bash: cd: subdir/: Permission denied
lienhua34@test$ ls -l subdir/
ls: cannot open directory subdir/: Permission denied

我们将subdir的其他人权限添加r权限后,

lienhua34@test$ sudo chmod -R o+r subdir
lienhua34@test$ ls -l
total
drwxr-xr-- root root Dec : subdir
lienhua34@test$ ls -l subdir
ls: cannot access subdir/file1: Permission denied
ls: cannot access subdir/file2: Permission denied
total
-????????? ? ? ? ? ? file1
-????????? ? ? ? ? ? file2
lienhua34@test$ cd subdir
bash: cd: subdir: Permission denied

有上面的执行结果,我们可以看到用户lienhua34对目录subdir具有r权限,其可以通过ls命令列出subdir目录下的文件列表。但是lienhua34没有权限获取该目录下的文件的属性,也没有权限进入该目录(因为用户lienhua34没具备对目录subdir的x权限)。现在我们给lienhua34赋予x权限,

lienhua34@test$ sudo chmod o+x subdir
lienhua34@test$ ls -l
total
drwxr-xr-x root root Dec : subdir
lienhua34@test$ ls -l subdir
total
-rw-r--r-- root root Dec : file1
-rw-r--r-- root root Dec : file2
lienhua34@test$ cd subdir
lienhua34@subdir$

由上面的结果可见,lienhua34对subdir具有x权限之后,可以查看该目录下的文件属性,也可以进入该目录。如果你在某目录下不具有x的权限, 那么你就无法切换到该目录下,也就无法执行该目录下的任何指令,即使你具有该目录的r的权限。

关于目录的w权限的验证测试:

下面我们还是通过刚刚的subdir目录进行验证测试。首先用户lienhua34对目录subdir具有rx权限,而且对subdir目录下的文件没有任何权限,如下所示,

lienhua34@test$ ls -l
total
drwxr-xr-x root root Dec : subdir
lienhua34@test$ cd subdir/
lienhua34@subdir$ ls -l
total
drw-r----- root root Dec : dir1
-rw-r----- root root Dec : file1

此时用户lienhua34可以进入subdir目录,能够查看该目录下的文件列表。但无法查看该目录下的文件的内容,也无法增删文件或目录,

lienhua34@subdir$ cat file1
cat: file1: Permission denied
lienhua34@subdir$ touch file3
touch: cannot touch ‘file3’: Permission denied
lienhua34@subdir$ rm file1
rm: remove write-protected regular empty file ‘file1’? y
rm: cannot remove ‘file1’: Permission denied
lienhua34@subdir$ rmdir dir1
rmdir: failed to remove ‘dir1’: Permission denied
lienhua34@subdir$ mkdir dir2
mkdir: cannot create directory ‘dir2’: Permission denied

如果此时赋予用户lienhua34对目录subdir的w权限,则lienhua34便具有了改动目录subdir的目录结构权限。于是便可以增删文件或目录(不管用户lienhua34对这些目录具有什么权限)。

lienhua34@test$ sudo chmod o+w subdir
lienhua34@test$ ls -l
total
drwxr-xrwx root root Dec : subdir
lienhua34@test$ cd subdir
lienhua34@subdir$ ls -l
total
drw-r----- root root Dec : dir1
-rw-r----- root root Dec : file1
lienhua34@subdir$ rm file1
rm: remove write-protected regular empty file ‘file1’? y
lienhua34@subdir$ touch file2
lienhua34@subdir$ rmdir dir1
lienhua34@subdir$ mkdir dir2
lienhua34@subdir$ ls -l
total
drwxr-xr-x lienhua34 lienhua34 Dec : dir2
-rw-r--r-- lienhua34 lienhua34 Dec : file2

由此可见目录的w权限如此之重要。切莫轻易给其他人开启目录的w权限。

(done)

#Linux学习笔记# Linux文件的属性以及权限说明的更多相关文章

  1. Linux学习笔记-Linux系统简介

    Linux学习笔记-Linux系统简介 UNIX与Linux发展史 UNIX是父亲,Linux是儿子. UNIX发行版本 操作系统 公司 硬件平台 AIX IBM PowerPC HP-UX HP P ...

  2. Linux 学习笔记 5 文件的下载、压缩、解压、初步认识yum

    写在前面 上节我们通过简单的几组命令,已经完全的实现了文件的移动.删除.更名.以及复制,我们最常用的基本玩法,本节将带着大家学习压缩.解压的相关步骤. Linux 学习笔记 4 创建.复制.移动.文件 ...

  3. #Linux学习笔记# Linux文件的所有者、群组和其他人

    1.关于所有者.群组和其他人 在Linux系统中,每个文件都具有User.Group和Others三种身份的权限配置.那这三种身份分别表示什么意思呢?配置这三种身份的权限有啥意义呢? (1)文件所有者 ...

  4. Linux学习笔记11——文件I/O之二

    一.文件共享 内核使用三种数据结构表示打开的文件,它们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响. 1.每个进程在进程表中都有一个记录项,记录项中包含有一张打开文件描述表 2.内 ...

  5. linux学习笔记之文件类型,及目录介绍

    引用A:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/20/3033131.html 引用B:http://www.cnblogs.c ...

  6. Linux学习笔记05—文件与目录权限

    1. 绝对路径与相对路径绝对路径:路径的写法一定由根目录 ‘/’写起,例如 /usr/local/mysql 这就是绝对路径相对路径:路径的写法不是由根目录 ‘/’写起,例如:首先用户进入到/, 然后 ...

  7. Linux学习笔记—Linux磁盘与文件系统管理(转载)

    认识EXT2文件系统 文件的系统特性 Linux的正规文件系统为Ext2 文件数据除了文件实际内容外,还包括其他属性(文件权限.文件属性). 文件系统将这两部分数据分别存放在不同的块,权限和属性放在i ...

  8. Linux学习笔记之文件权限

    前言: 说起文件权限,大家在windows下应该很熟悉就对文件右键属性,然后配置一点什么读写之类的权限,然后可以分配到每个的人. 对于linux 我先为大家介绍一个使用者和组和其他的概念说明一下 文件 ...

  9. Linux学习笔记 -- 话说文件

    文件基本属性 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定. 在Li ...

随机推荐

  1. 提高IT团队工作效率的建议

    过分强调个人主义,不科学分工,内部成员的冲突等,都将导致IT团队没有凝聚力,直接影响团队合作项目的完成.如何提高团队工作效率,相信很多IT经理人都想过这类问题.日前,国外科技网站CIO撰文就如何提高I ...

  2. 初次使用Docker的体验笔记

    一.前言 Docker容器已经发布许久,但作为一名程序员如今才开始接触,实在是罪过--        在此之前,我还没有对Docker进行过深入的了解,对它的认识仍停留在:这是一种新型的虚拟机.这样的 ...

  3. matchesSelector及低版本IE中对该方法的实现

    matchesSelector用来匹配dom元素是否匹配某css selector.它为一些高级方法的实现提供了基础支持,比如事件代理,parent, closest等. W3C在2006年就提出了该 ...

  4. C和CPP关于条件运算符的区别

    条件运算符形式: cond ? expr1 : expr2; 在C语言中执行过程是: 先对cond求值,值为真返回expr1的值,否则返回expr2的值.(右值) gcc测试结果: 在Cpp中如果两个 ...

  5. 二分法 codevs 1432 总数统计

    codevs 1432 总数统计  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond   题目描述 Description 给出n个数,统计两两之和小于k的方 ...

  6. 怎样快速学会ZBrush 中的移动笔刷的运用

    本篇视频教程,进入ZBrush®最精彩章节,雕刻前我们需要认识的雕刻工具-笔刷.zbrush自带了多种笔刷供大家选择和使用,掌握和用好这些笔刷将让我们的雕刻工作更加自由.本课的内容将主要向大家介绍最基 ...

  7. mac os利用xampp实现apache下的cgi

    折腾了两天终于把问题解决了,mac os是10.10.3..够新了吧 系统原生的apache配置cgi老是配不好,突然发现xampp也有macos版的,准备下下来试试. 安装完成后,打开apache服 ...

  8. QC学习二:QC使用中问题点汇总

    QC 使用中问题点汇总,包括以下方面: 1.不兼容IE7,IE8的问题(服务器端设置) 2.无法在Win 7下正常下载页面(客户端设置) 3.在QC中填写中文内容后无法正常提交到数据库(客户端设置) ...

  9. C# HttpWebRequest 绝技 转至 http://www.sufeinet.com/

    转至: 在线测试工具http://www.sufeinet.com/thread-3690-1-1.htmlc# HttpWebRequest与HttpWebResponse 绝技    如果你想做一 ...

  10. scala学习之第三天:数组的特性与使用技巧

    1.数组 Scala数组与Scala序列是兼容的 - 在需要Seq[T]的地方可由Array[T]代替.最后,Scala数组支持所有的序列操作. 隐式转换 方法1:通过scala.collection ...