文件权限控制对文件的访问。
有三种权限类别可应用:读取、写入和执行。
权限对文件和目录的影响:
|   权限  |   对文件的影响  |   对目录的影响  | 
|   r读取  |   可以读取文件的内容  |   可以列出目录的内容  | 
|   w写入  |   可以更改文件的内容  |   可以创建或删除目录中任一文件  | 
|   x执行  |   可以作为命令执行文件  |   目录可以成为当前工作目录。  | 
ls命令-l选项可显示有关权限和所有权的详细信息。
 
长列表的第一个字符表示文件类型,d表示文件夹,具体解释如下:
-:常规文件。
d:目录。
l:符号链接。
c:字符设备文件。
b:块设备文件。
p:命名管道文件。
s:本地套接字文件。
第一个root表示文件的所有者,第二个root表示文件的所属组。
chmod命令可从命令行更改文件和目录权限。
符号法:
使用chmod命令修改文件和目录权限。以下示例可以帮助理解chmod的用法:
chmod  who/what/which  file|directory 
who是用户的类,如下表所示。
|   who  |   集合  |   描述  | 
|   u  |   user  |   文件所有者  | 
|   g  |   group  |   文件所属组的成员  | 
|   o  |   other  |   既不是文件所有者也不是文件所属组成员的用户  | 
|   a  |   all  |   所有前面的三组  | 
what是修改which的操作符,如下表中所示。
|   what  |   操作  |   描述  | 
|   +  |   add  |   向文件添加权限  | 
|   -  |   remove  |   从文件删除权限  | 
|   =  |   set exactly  |   精确设置所提供的文件权限  | 
which是模式,指定文件或目录的权限,如下表所示。
|   which  |   模式  |   描述  | 
|   r  |   read  |   文件的读取权限。目录的列出权限。  | 
|   w  |   write  |   文件或目录的写入权限  | 
|   x  |   execute  |   文件的执行权限。允许进入目录,以及访问该目录中的文件和子目录。  | 
chmod的用法:
chmod [选项] 模式 文件
 
-R:递归更改文件和目录的权限
给所有者增加执行权限:
[root@localhost ~]# ll file.cfg 
-rw-r--r--. 1 root root 0 Jul 12 22:12 file.cfg
[root@localhost ~]# chmod u+x file.cfg 
[root@localhost ~]# ll file.cfg 
-rwxr--r--. 1 root root 0 Jul 12 22:12 file.cfg 
给所属组和其他人增加读权限:
[root@localhost ~]# chmod go+r file.cfg 
[root@localhost ~]# ll file.cfg 
-rwxr--r--. 1 root root 0 Jul 12 22:12 file.cfg 
 
数字法:
权限位的表示
每个权限位可以使用以下八进制数字来表示:
4:读权限(r) 2^2
2:写权限(w)2^1
1:执行权限(x)2^0
0:无权限(-)
设置文件的权限为rwxr-xr--:
[root@localhost ~]# ll file.cfg 
-rwxr--r--. 1 root root 0 Jul 12 22:12 file.cfg
[root@localhost ~]# chmod 754 file.cfg 
[root@localhost ~]# ll file.cfg 
-rwxr-xr--. 1 root root 0 Jul 12 22:12 file.cfg 
 
用户拥有其创建的文件。默认情况下,新文件的组所有权为创建该文件的主要用户组。
可以使用chown(更改所有者)命令更改文件所有权。
chown [选项] [所有者][:[组]] 文件或目录
 
常用选项
-c:显示更改的信息。
-f:忽略错误信息。
-R:递归更改指定目录及其子目录和文件的所有者和组。
-v:显示处理的详细信息。
更改文件file.cfg的所有者为user。
[root@localhost ~]# chown user file.cfg 
[root@localhost ~]# ll file.cfg 
-rw-rw-r--. 1 user root 0 Jul 12 22:12 file.cfg 
更改文件所有者和组;
[root@localhost ~]# chown user01:group01 file.txt 
[root@localhost ~]# ll file.txt 
-rw-r--r--. 1 user01 group01 0 Jul 13 11:54 file.txt 
 
chgrp命令是用于更改文件或目录所属的组的Linux命令。
chgrp [选项] [组] 文件或目录
 
- -c:显示更改的信息。
 - -f:忽略错误信息。
 - -R:递归更改指定目录及其子目录和文件的组。
 - -v:显示处理的详细信息。
 - --reference=RFILE:使用文件RFILE的组作为参考,更改指定文件或目录的组。
 
更改文件组;
[root@localhost ~]# chgrp user file.txt 
[root@localhost ~]# ll file.txt 
-rw-r--r--. 1 user01 user 0 Jul 13 11:54 file.txt