Linux系统的文件和目录权限

知识点:
Linux系统中的每个文件和每个目录都有访问许可权限,以此来确定谁可以访问,以及对文件和目录进行什么操作。

文件或目录的访问权限分为读(r),写(w)和可执行(x)三种。读权限表示允许读取内容,而写权限表示允许更改内容,可执行权限表示允许执行。

文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限。用户可根据需要把访问权限设置为需要的任何组合。

有三种不同类型的用户可对文件或目录进行操作:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。

文件或目录的访问权限都有三组,每组用三位表示,分别为文件所有者的读、写和执行权限;与所有者同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。

当用ls -l命令显示文件或目录的详细信息时,最左边的一列(drwxr-xr-x)为文件的访问权限。例如:

drwxr-xr-x  7 www www 20480 Jan  1  2015 uploads

说明:目录uploads,为www所有,权限为可读,可写,可执行;用户组www,权限为可读,不可写,可执行;其他用户权限为可读,不可写,可执行。

drwxr-xr-x 权限设置共有10位,
第一位字符指定了文件的类型。如果第一个字符是横线(-),表示是一个非目录的文件。如果是d,表示是一个目录。
第二位字符到第10位共9个字符,以3个字符一组,分别表示了3组用户对文件或者目录的权限。权限字符用横线代表空许可,r代表只读,w代表写,x代表可执行。
2-4位按顺序表示所有者的读(r)写(w)执行(x)权限;
5-7位按顺序表示和所有者同组用户的读(r)写(w)执行(x)权限;
8-10位按顺序表示其他用户的读(r)写(w)执行(x)权限;

权限的更改:

chown命令:
用于改变linux系统文件的所有者和用户组,用户可以是用户名或者用户ID;组可以是组名或者组ID。

命令格式:
chown [选项]… [所有者][:[组]] 文件…

例如:

chown -R root:www uploads

chmod命令:
用于改变linux系统文件或目录的访问权限。

命令格式:
chmod [选项] [权限] 文件

权限代号:
r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
– :删除权限,用数字0表示

1)使用数字设置

数字表示的属性的含义:
0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。
例如,如果想让某个文件的所有者有“读/写”二种权限,需要设定4(可读)+2(可写)=6(读/写)。

数字与字符对应关系如下:
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。

实例:
执行 chmod 644 uploads 后,权限变为 drw-r–r–

说明:
文件所有者(u)可读可写不可执行;文件所有者同组用户(g),可读不可执行不可更改;其他用户(o),可读不可执行不可更改。

2)使用字符设置
< 权限范围>+< 权限设置> 增加权限范围的目录或者文件具有指定的权限
< 权限范围>–< 权限设置> 删除权限范围的目录或者文件的指定权限
< 权限范围>=< 权限设置> 设置权限范围内的目录或者文件的权限为指定的值

权限范围:
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组

实例:
chmod a+x uploads 说明:文件所有者(u)、文件所有者同组用户(g)、其他用户(o)全部增加可执行权限。

chmod a-x uploads 说明:删除所有用户的可执行权限。

chmod u=x uploads 说明:取消文件所有者(u)原来所有的权限,然后设置可执行权限。

chmod u=rwx,g=rx,o=x uploads 说明:等效于 chmod 751 uploads,给所有者分配读、写、执行(7)的权限,给所在组分配读、执行(5)的权限,给其他用户分配可执行(1)的权限。

其他应用
设置目录/path的所有子目录(不包括文件)的权限为755

find /path -type d -exec chmod 755 {} \;

设置目录/path的所有文件和子目录下的所有文件(不包括目录)的权限为644

find /path -type f -exec chmod 644 {} \;

设置当前目录、子目录(包括文件)的所有者为root和用户组为www

chown -R root:www *

Drupal 权限设置例子:

sudo chown -R MYUSER:www-data *
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 640 {} \;
sudo find sites/default/files/config* -type f -exec chmod 664 {} \;

10月 1, 2016 | In: Linux

Comment Form

You must be logged in to post a comment.

分类

归档

ipv6 ready