Linux系统下对某个文件或者文件夹进行某种操作,必须具备相应的执行权限才能进行操作。因为Linux操作系统对文件的权限有着严格的控制。
Linux下文件权限、目录权限
(1)
Linux下文件的权限一般包括读(read)、写(writer)、执行,相对应的字母分别为r、w、x。
(2)
Linux下有拥有者、群组、其他组三种权限粒度。每个文件都可以针对这三个不同的权限粒度,设置不同的读、写、执行权限。
u:拥有者;g:群组;o:其他组;a:所有。
(3)
Linux下每个文件只能归属于一个用户和组。其他的用户如果想拥有这个文件的权限,可以将该用户加入具有相关权限的群组。一个用户可以归属于多个群组。
(4)
Linux下设置、修改文件的权限,我们通常使用chmod命令。
(5)
Linux下十位权限说明:
第一位表示的是文件的类型:
d(directory,表示的是目录);
-(regular file,表示的是文件);
s(socket,表示的是套字文件);
p(pipe,表示的是管道文件或者命名管道文件);
l(symbolic,表示的是符号链接文件);
b(block-oriented device file,表示文件是面向块的设备文件);
c(character-oriented device file,表示文件是面向字符的设备文件)
其他九位权限表示形式说明
-rw------- (600):拥有者有读写权限;
-rw-r--r-- (644) :拥有者有读写权限,而属组用户和其他用户只有读权限;
-rwx------ (700) :拥有者有读、写、执行权限;
-rwxr-xr-x (755):拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711):拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666):所有用户都有文件读、写权限。
-rwxrwxrwx (777):所有用户都有读、写、执行权限。
(6)
权限的位权值:
读(r):二进制表示为:100,八进制表示为:4;
写(w):二进制表示为:010,八进制表示为:2;
执行(x):二进制表示为:001,八进制表示为:1;
无任何权限(-):二进制表示为:000,八进制表示为:0。
rwx(读写执行):7(111);
rw-(读写):6(110);
r-x(读执行):5(101);
r--(读):4(100);
-wx(写执行):3(011);
-w-(写):2(010);
--x(执行):1(001);
---(无任何权限):0(000)。
Linux下修改权限命令chmod的使用
chmod [-cfvR] [--help] [--version] mode file
(1)
c:表示若该文件权限确实已经已经更改,才显示其更改动作。
f:表示若该文件权限无法被更改,也不要显示错误信息。
v:表示显示权限变更的详细资料。
R:表示对当前目录下的所有文件和子目录以递归的方式进行相同的权限变更。
(2)
u:所属者;
g:所属组;
o:其他用户;
+:增加权限;
-:取消权限;
=:设定权限(将权限设置成后面的值);
(3)示例
chmod ugo+r 111.txt:表示将111.txt文件读的权限赋予所有人;
chmod 777 222.txt:表示将222.txt文件所有权限赋予所有人;
chmod -R a+r 333:表示将333目录下的所有文件和子目录读的权限赋予所有人。