linux 下文件和目录权限

Posted by Azrael on November 29, 2016

一、文件和目录权限分类

文件基本权限 分为:

只读权限 r
读写权限 w
可执行权限 x

文件归属 分为:

本用户(user)
同组用户(group)
其他用户(other)

文件类型 分为

普通文件      -
目录文件      d
连接文件      l 
块设备文件    b
字符设备文件  c 
管道文件      p

位置含义:

第一列:     文件类型
第一个三元组:文件拥有者的权限(u)
第二个三元组:文件拥有者组的权限(g)
第三个三元组:所有其他用户的权限(o)

二、修改权限

chmod 命令,只有 文件的拥有者root 才有权修改文件或目录的访问权限。

命令格式:

chmod [-选项] <权限值组合> <文件或目录名>

选项:

-R 递归,包含其下所有目录、子目录及文件

-v 修改权限时显示详细信息

权限值组合:

可以使用数字,也可以使用字符方法

1 用字符方式修改权限:
u 代表拥有者 = user
g 代表用户组 = group
o 代表其他用户 = others
a 代表所有人 = all

赋权限的符号 +/-/=

举例:

# chmod u+w file2

给 file2 文件的拥有者可写的权限

2 rwx也可以用数字来代替

数字 4 表示可读权限(r),数字 2 表示可写权限(w),数字 1 表示可执行权限(x)

r ————4
w ———–2
x ————1
- ————0

rwx 属性则 4+2+1=7
rw- 属性则 4+2=6
r-x 属性则 4+1=5

举例:

#chmod 400 file1

指定只有 file1 文件的拥有者对 file1 有读的权限,file1 文件的拥有者组和其他用户对 file1 没有任何权限

#chmod -R 644 dir/

将 dir 目录下的所有文件权限设置为 644

三、linux中的文件、目录权限区别:

                文件                     目录
r:可读权限     读取文件内容          读包含在目录中的文件名称
w:可写权限     对文件内容进行编辑     可以写信息到目录中,即可以创建、删除文件、移动文件等操作
x:可执行权限    作为执行文件执行     可以进入目录;可以搜索(能用该目录名称作为路径名去访问它所包含的文件和子目录)

举例:

  1. 对文件有 w 权限不能删除文件,需要对文件所在的目录有 w 权限;
  2. 对目录有 w 权限不能 cd 进入目录,需要对目录有 x 权限;
  3. 对目录有 x 权限,只有在知道文件名并且有r权限的时候才能访问目录下的文件;
  4. 对目录必须有 x 权限才能 cd 进入到目录,必须有 rx 权限才能使用 ls 列出目录清单;
  5. 对目录有 w 权限,可以对目录中的任何文件或子目录进行创建、删除或修改操作,即使该文件或目录的所有者是其它用户也是如此;

四、总结:

对于普通目录,最小权限为755,普通用户不给写权限

对于普通文件,最小权限为644,普通用户不给执行权限

总而言之,言而总之就是:

目录不要给写权限,文件不要给执行权限(除非特殊情况,如目录要上传)