linux下目录的权限解说

本文解析了Linux系统中目录的读、写、执行权限的具体含义及应用场景,帮助理解如何正确设置目录权限。

在linux系统中,权限概念的重要性相信不需要我来讲,所谓的权限无非是r,w,x,文件的各种权限都很好理解,较难理解的是目录的权限,下面我主要对目录的权限说一下自己的看法:

1. 目录的读权限

看过linux内核方面书的朋友应该都知道目录于内核而言也是文件,目录是特殊的文件,它的内容包括:这个目录下的文件名列表以及各个文件对应的文件系统中的索引节点信息。既然目录也是文件,那么目录的读权限就好理解了,如果你对一个目录没有读权限,那么也就是说你不能读取它的内容,请注意:它的内容是这个目录下的文件名列表以及各个文件对应的文件系统中的索引节点信息。因此你不能在这个目录下执行诸如ls这样的命令,因为ls是要读取这个文件列表等信息的。

2. 目录的写权限

文件的写权限代表你能否往一个文件里面写东西,目录也是文件,自然也是一样的,如果你对一个目录没有写权限,那么任何要改变这个目录下文件名列表的操作都会被拒绝。

例子:假如我对目录dir没有写权限,dir目录下存在文件file,那么

   1:  ls                  #允许  ls只是读嘛
   2:   
   3:  rm file             #拒绝,因为删除会改变目录文件名列表
   4:   
   5:  mv file file.bk     # 拒绝,这也改变了文件名列表信息
   6:   
   7:  cp  file file.bk    #拒绝
   8:   
   9:  cp  file ../file.bk #允许,将file复制到上层目录,并不改变当前目录的文件结构,注意这个命令和上一行的区别,仔细体会下
  10:   

补充:即使对目录没有写权限,但是仍然可以对目录下已存在的文件进行编辑,只要对该文件具有写权限即可。

3. 目录的执行权限

目录的执行权限就比较好理解了,如果对一个目录没有执行权限,那么你不能进入该目录执行任何命令,如果你已经在该目录下,那么你能执行的只有cd XX, 并且cd ./除外。

Linux系统中,了解目录结构和文件权限至关重要。 ### Linux系统目录结构 使用 `ls -l /` 可查看根目录下的子目录,各目录有其特殊含义: - **/bin**:存放最经常使用的命令[^1]。 - **/boot**:存放启动Linux时使用的一些核心文件[^1]。 - **/dev**:存放Linux的外部设备[^1]。 - **/etc**:存放所有系统管理所需的配置文件和子目录[^1]。 - **/home**:用户的主目录,每个用户都有自己的目录[^1]。 - **/root**:系统管理员(超级权限者)的用户主目录[^1]。 - **/tmp**:用来存放临时文件[^1]。 - **/usr**:重要目录,用户的很多应用程序和文件都在此目录下。其中,`/usr/bin` 存放系统用户使用的应用程序;`/usr/loacl` 是手工安装的软件保存位置,建议源码包软件安装在此;`/usr/sbin` 是超级用户使用的比较高级的管理程序和系统守护程序;`/usr/include` 是C/C++等编程语言头文件的放置目录[^1]。 - **/var**:存放不断扩充的东西,习惯将经常被修改的目录(如各种日志文件)放在此目录下[^1]。 - **/run**:临时文件系统,存储系统启动以来的信息[^1]。 ### Linux文件和目录权限 #### 权限种类 文件和目录权限分为(r)、写(w)、执行(x)三种。对于目录,只有r权限可能没什么作用,往往r和x要同时提供,因为没有x就不能进入该目录,r就几乎没什么用了;对于文件,只有w却没有r往往也没用,因为无法取文件原内容就难以进行增删修改[^4]。 #### 权限分组 一般分为文件拥有者、所属用户组、其他用户三组。 #### 文件权限查看 使用 `ls -l` 命令可显示文件的详细信息,例如: ```plaintext wangjie@ubuntu:/opt/qcom$ ls -l total 12 drwxr-xr-x 7 root root 4096 Jun 3 15:29 ARM_Compiler_5 drwxr-xr-x 4 root root 4096 Jun 3 15:43 HEXAGON_Tools drwxr-xr-x 9 root root 4096 Jun 3 15:48 LLVM ``` 其中,`drwxr-xr-x` 表示文件或目录权限信息,`d` 表示目录,`rwx` 分别对应、写、执行权限,三组 `rwx` 依次对应文件拥有者、所属用户组、其他用户的权限[^5]。 #### 修改文件权限 - **chmod**:修改文件/目录权限,有文字设定法和数字设定法。文字设定法如 `chmod u+r file` 表示给文件拥有者添加权限;数字设定法中,r=4,w=2,x=1,如 `chmod 755 file` 表示文件拥有者有执行权限(4+2+1),所属用户组和其他用户有执行权限(4+1)[^3]。 - **chown**:修改文件/目录拥有者。 - **chgrp**:修改文件/目录所属组。 #### 文件默认权限与隐藏权限 - **文件默认权限**:使用 `umask` 来设置文件创建时的默认权限。 - **文件隐藏权限**:使用 `chattr` 设置,`lsattr` 查看。 - **文件特殊权限**:包括SUID、SGID、SBIT。 #### 观察文件类型 使用 `file` 命令可查看文件类型。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值