`
oldrat
  • 浏览: 1164 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

你不知道的Linux/Unix下目录权限的含义

阅读更多

节选自我的博文 Linux/Unix的精巧约定两例:目录权限和文本行数

如有谬误敬请指正。

目录的执行权限

普通文件有执行权限、执行操作,很容易理解,目录执行权限是个啥?

 写道
目录的执行权限 是 下面操作的前提:

1. 该目录下的文件(包含子目录)的读、写、执行操作(即目录下文件的全部操作)
2. 该目录本身的写操作
    注: 要对目录进行写操作,要同时有该目录的写权限 和 该目录的执行权限。
    详见《Unix环境高级编程》第四章第5节“文件访问权限”;中文版第二版在第76页。
    多谢kiminotes同学半夜还和我一起验证和确认这个问题,并给我找出了上面资料。

关于上面提到的目录的读、写操作的说明在下一节给出。


上面条款1实际上包含有递归说明:
1. 目录的执行权限前提要有父目录的执行权限;
2. 父目录的执行权限的前提是要有父目录的父目录的执行权限;
3. ……

 

举个例子来讲解一下,比如要读文件/home/foo/readme.txt:
1. 要读readme.txt,前提要可以执行父目录foo
2. 要执行foo目录,前提要可以执行父目录home
3. 要执行home目录,前提要可以执行父目录/(即root目录)
4. root目录没有父目录了(或者说,root目录的父目录是自己),递归终止。

 

上面分析的结果是,要读文件/home/foo/readme.txt需要:
1. readme.txt的读权限
2. foo目录的执行权限
3. home目录的执行权限
4. /目录的执行权限


通过上面分析可以看出,目录的执行权限是对其下子文件进行操作的前提。

 

所以只要对自己的Home目录的权限改成700,就可以拒绝他人查看自己Home下的文件的内容、在目录下新建或是删除文件。
# 如果只给他Home目录的读权限,还是可以list出Home下有哪些文件,见下一节的说明

$ chmod 700 .
$ ls -ld .
drwx----- 9 foo foo 4.0K 2012-11-20 00:11 ./

注: ls的-d表示list文件是目录时,不去list目录下文件,而是list目录本身。

目录读、写操作

普通文件(非目录)的读、写操作很容易理解。目录的读、写操作说明如下:

 写道
目录读操作 = 可以list出目录下有哪些文件
写操作 = 可以在该目录下新建和删除这个目录下的文件(包含新建和删除子目录)
      注:要对目录进行写操作,前提要同时有该目录的写权限 和 该目录的执行权限。

 
所以,为了删除一个现有的文件,必须对包含该文件的目录具有写权限和执行权限;对该文件本身不需要有读、写权限。

讨论

目录这些权限的约定,让整个目录(包含下面所有的子文件)的控制变得简单,简单调整这个目录上的执行权限就可以了;信息集中,方便维护。

想想Windows的约定吧,是不是想到那个“应用到所有子目录和文件”的选项,要把所有的子目录都设置一遍。

分享到:
评论

相关推荐

    ftp命令详解--linux/unix

    ftp命令的详细讲解,对于经常在linux/unix下进程文件传输的人员是份不错的参考资料。

    Linux /Unix 共享内存

    在/proc/sys/kernel/目录下,记录着共享内存的一些限制,如一个共享内存区的最大字节数shmmax,系统范围内最大共享内存区标识符数shmmni等,可以手工对其调整,但不推荐这样做。 一、应用 共享内存的使用,主要有...

    LINUX与UNIX SHELL编程指南

    呵呵,这真的是一本好书《LINUX与UNIX SHELL编程指南》 --------------------------------------------- 经典《Linux与UNIX Shell编程指南》 shell是一种完整的编程语言,易学易用;shell脚本可以使烦人的手工作业...

    LINUX与UNIX SHELL编程指南(很全)

    非常的全,绝对不会让你后悔。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 ...

    绝版经典 LINUX与UNIX SHELL编程指南 PDF 高清版 [16.3M]

    本书共分五部分 ,详细介绍了SHELL编程技巧,各种UNIX命令及语法,还涉及了UNIX的文字处理以及少量的系统管理问题。本书内容全面,文字简洁流畅,适合SHELL编程人员学习、参考。 目录 第一部分 SHELL 第一章 文件...

    Linux 操作系统开发手册.CHM

    Linux 是一款免费、开源的操作系统,其安全、高效、稳定,处理高并发非常强悍,现在很多的企业级的项目都会部署到Linux/unix服务器运行。 Linux 的创始人是Linus Torvalds(林纳斯) Linux 操作系统开发手册,该...

    Linux与unix shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell ...

    绝版经典《Linux与UNIX Shell编程指南》

    1.7.3 找出你所属于的用户组 9 1.7.4 找出其他用户所属于的组 10 1.8 umask 10 1.8.1 如何计算umask值 10 1.8.2 常用的umask值 11 1.9 符号链接 12 1.9.1 使用软链接来保存文件的多个映像 12 1.9.2 符号链接举例 12 ...

    Linux FTP服务配置

    vsftp的含义就是Very Security Ftp,下面就简要的说一下它的配置和使用方法,通过本文的介绍也希望您能了解在Linux下配置一个网络服务的基本过程  1.相关配置文件  /etc/vsftpd.conf,vsftpd.ftpuser,vsftpd.user_...

    经典《Linux与UNIX Shell编程指南》中文文字版.pdf

    为了防止未授权用户访问你的文件,可以在文件和目录上设置权限位。还可以设定文件 在创建时所具有的缺省权限:这些只是整个系统安全问题中的一小部分。在这里我们并不想 对系统安全问题的方方面面进行全面的探讨,...

    LINUX与UNIX SHELL编程指南 高清PDF

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    Linux与Unix Shell编程指南.pdf

    Linux与Unix Shell编程指南。目录:文件安全与权限、正则表达式、grep、awk、sed使用、shell程序结构等

    linux教程——很使用的那种

    linux中的文件(普通文件或设备文件等)都必须有挂在点,只有挂载到一个目录下才能访问,swap分区是不需要挂载点的,在分区的时候,将文件系统类型选为swap,挂载点自动会变为灰色。一般linux中的swap大小为内存的两倍。...

    linux与unix shell 编程(下)

    1.7.3 找出你所属于的用户组 9 1.7.4 找出其他用户所属于的组 10 1.8 umask 10 1.8.1 如何计算umask值 10 1.8.2 常用的umask值 11 1.9 符号链接 12 1.9.1 使用软链接来保存文件的多个映像 12 1.9.2 符号链接举例 12 ...

    iMarkChina v4.0 beta

    使用Linux/Unix服务器的博友请注意文件写入权限!使用Windows服务器的博友应该可以无视权限写入问题!如是你不清楚写入权限是如何工作的,那么你可以把所有文件与文件夹设置权限为0777! (0777代表所有文件与文件夹...

Global site tag (gtag.js) - Google Analytics