在 Linux 系统中,每个文件都有归属的所有者和所属组,并且规定了文件的所有者、所用户身份与文件权限 164 属组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。对于一般文件来 说,权限比较容易理解:“可读”表示能够读取文件的实际内容;“可写”表示能够编辑、新 增、修改、删除文件的实际内容;“可执行”则表示能够运行一个脚本程序。但是,对于目录文件来说,理解其权限设置就不那么容易了。很多资深 Linux 用户其实也没有真正搞明白。 对于目录文件来说,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新 增、删除、重命名文件;而“可执行”则表示能够进入该目录。
下表即是可读、可写、可执行权限对应的命令在文件和目录上的区别:
文件 | 目录 | |
可读(r) | cat | ls |
可写(w) | vim | touch |
可执行(x) | ./script | cd |
下表即是文件权限的字符与数字表示:
权限项 | 可读 | 可写 | 可执行 | 可读 | 可写 | 可执行 | 可读 | 可写 | 可执行 |
字符表示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
权限分配 | 文件所有者 | 文件所属组 | 其他用户 |
比如,有一个权限是rwxr-xr--,转换成数字是421401400,简写为754,于是我们可用数字修改文件的权限,如下:
[root@establish ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1385 Oct 10 03:50 anaconda-ks.cfg
[root@establish ~]# chmod 754 anaconda-ks.cfg
[root@establish ~]# ls -l anaconda-ks.cfg
-rwxr-xr--. 1 root root 1385 Oct 10 03:50 anaconda-ks.cfg
[root@establish ~]#
用数字修改文件的权限比用字符形式更简洁更快。
chown命令用于设置文件的所有者和所有组,语法格式为“chown 所有者:所有组 文件名”,如:
[root@establish ~]# chown linuxprobe:linuxprobe anaconda-ks.cfg
[root@establish ~]# ls -l anaconda-ks.cfg
-rwxr-xr--. 1 linuxprobe linuxprobe 1385 Oct 10 03:50 anaconda-ks.cfg
[root@establish ~]#
于是anaconda-ks.cfg文件的所有者和所有组就由root改为了linuxprobe。
有关chmod与chown命令的详细用法,可参考:www.linuxcool.com
以上只是文件的一般权限,另外还有文件的特殊权限、隐藏权限、facl等,后面再介绍吧。