本文主要介绍在linux系统下文件权限配置,通过阅读该文,你会了解文件权限,同时能正确的配置文件权限,避免盲目操作。成文的原因也是因为自己在程序执行过程中一直会遇到这样的问题,所以最终专门整理了相关知识,希望也能帮到大家。

1. ls -l命令讲解

我们可以通过ls -l命令查看除了文件名称外的其他信息,比如文件型态、权限、拥有者、文件大小等。

这里可以看来自网上的一幅图。

clipboard.png

2. 如何设置权限

在我们能看懂文件权限后,就需要掌握怎么配置权限,这里主要讲解chmodchown两个命令。

2.1 chmod

Linux/Unix 文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。

// -R表示级联更改
chmod [-R] xyz 文件名(这里的xyz表示数字)。

比如下面三种操作都是设置所有人可以读写及执行file

chmod 777 file  

chmod u=rwx,g=rwx,o=rwx file 

chmod a=rwx file

这里我们重点讲解下数字格式777指的是什么。

我们多数用三位八进制数字的形式来表示权限,第一位指定属主的权限,第二位指定组权限,第三位指定其他用户的权限,每位通过4(r-读)、2(w-写)、1(x-执行)三种数值的和来确定权限。如6(4+2)代表有读写权,7(4+2+1)有读、写和执行的权限。

按照上面的数值,r=4,w=2,x=1 ;
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5;
若要rwxrwxrwx属性则777;
若要rwxr-xr-x属性则755;

2.2 chown

更改文件拥有者。

chown [-cfhvR] [--help] [--version] user[:group] file...

示例:

将文件 file1.txt 的拥有者设为 neo,群体的使用者 neogroup :

chown runoob:runoobgroup file1.txt

将目前目录下的所有文件与子目录的拥有者皆设为 neo,群体的使用者 neogroup:

chown -R neo:neogroup *

3. umask

umask命令可以指定在建立文件时预设的权限掩码。

[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。一般默认的值是022,最终新创建的目录权限为755,文件权限为644。

  1. 对于目录,直接使用777-umask即可,就得到了最终结果。
  2. 对于文件,先使用666-umask。

    • 如果对应位上为偶数:最终权限就是这个偶数值。
    • 如果上面的对应为上有奇数,就对应位+1。
掩码 目录 文件
022 755 644
027 750 640
002 775 664
006 771 660
007 770 660

在终端直接执行umask只对本地登录有效,如果要永久修改,需要把内容umask=022写入到配置文件中,配置文件可以从下一章节中找到。

3.1 针对交互式登陆:

优先级从高到低。

  1. /etc/bashrc
  2. ~/.bashrc
  3. ~/.bash_profile
  4. /etc/profile.d/*.sh
  5. `/etc/profile

3.2 针对非交互登陆:

优先级从高到低。

  1. /etc/profile.d/*.sh
  2. /etc/bashrc
  3. ~/.bashrc

参考文档

本文同步发表于作者博客: linux系统文件权限简明介绍

ineo6
376 声望11 粉丝