一、Linux文件权限
每个Linux文件具有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)。利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为准。第一个字段由10个字符组成,如下:
-rwxr-xr-x
- 第一位表示文件类型,-表示文件,d表示目录
- 2-4位: 表示文件所有者的权限, u权限
- 5-7位: 表示文件所有者所属组成员的权限, g权限
- 8-10位: 表示所有者所属组之外的用户的权限, o权限
- 2-10位: 的权限总和有时称为a权限
以上例子中,表示这是一个文件(非目录),文件所有者具有读、写和执行的权限,所有者所属组成员和所属组之外的用户具有读和执行的权限而没有写的权限。第一个0是表示八进制。
二、文件权限修改----chmod
-
用数字表示法修改权限
所谓数字表示法,是指将r、w和x分别用4、2、1来代表,没有授予权限的则为0,然后把权限相加,如下:
原始权限 | 转换为数字 | 数字表示法 |
rwxrwxr-x | (421)(421)(401) | 775 |
rwxr-xr-x | (421)(401)(401) | 755 |
修改权限的例子:将文件test的权限修改为所有者和组成员具有读写的权限,其他人只有读权限
chmod 664 test
-
用文本表示法修改权限
Linux下分别有user,group,other,all等几种权限,文本表示法用4个字母表示不同的用户:
-
- u:所有者
- g:组成员
- o:其他成员
- a:所有人
权限仍用r、w和x表示
和数字表示法不同,文本表示法不仅可以重新指定权限,也可以在原来权限的基础上增加或减少权限,如下:
-
- =:重新制定权限
- -:对目前的设置减少权限
- +:对目前的设置增加权限
例子:讲上述例子中,所有者加上执行权限,组成员减少执行权限,其他成员设置为执行权限,执行以下命令:
chmod u+x,g-x,o=x test
注意:逗号前后不能有空格
三、目录权限
目录权限的修改和文件权限修改不同,只是四种权限代表的含义如下:
- r:可列出目录中的内容
- w:可在目录中创建、删除和修改文件
- x:可以使用cd命令切换到此目录
- -:没有任何此目录的访问权限
注意:目录可以使用通配符"*"来表示目录中的所有文件,如将/test目录中的所有文件的权限设置为任何人都可以读写
chmod 666 /test/*
#格式chmod 权限 要修改权限的文件linux中的权限如下:
#-rw------- (600) -- 只有属主有读写权限。
#-rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。
#-rwx------ (700) -- 只有属主有读、写、执行权限。
#-rwxr-xr-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
#-rwx--x--x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。
#-rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。
#-rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。
#777对应了9位分别是属主有读、写、执行权限;和属组用户和其他用户的读、写、执行权限。