理解linux下文件权限问题

在我们开发的过程经常遇到Permission denied,权限不足。于是我们就用sudo xxx来解决这个问题。但是为什么会权限不足?权限不足的原因是什么?

  1. 文件权限
    在某目录下执行ls -al,可以看到一连串当前目录下文件或者文件夹的信息。像这样其中就以圈起来文件做个介绍。
    drwxr-xr-x 43 flyover staff 1.4K Jun 17 16:44 fly
    drwxr-xr-x表示文件权限,第一个字母d表示文件夹,类似的还是l表示连接文件等。后面以三个字母为一组,分别是rwx,r-x,r-x表示第一组是owner的权限,第二组是group的权限,第三组是other的权限。其中r表示读权限,w表示写权限,x表示执行权限。
    43表示连接数。表示整个文件树中有多少个文件,与此文件连接。通俗的讲就是如果是文件的话就是1,如果是文件夹的话,表示下面有多少个文件。
    flyover就是文件owner。
    staff文件所属的文件组。
    1.4k表示文件大小。
    Jun 7 16:44表示最后修改时间。
    fly文件名。

  2. 命令
    修改文件属性的几个命令
    chgrp:改变文件所属的组。
    chown:文件owner。即修改拥有者。
    chmod:修改文件权限。

  3. 实际问题
    当我们遇到用户权限不够的时候,可以查看文件的权限。然后用对应的命令修改文件属性。
    比如我之前遇到nginx的user是www。但是我的项目在root下,这时nginx访问静态文件的时候,会出现403 Forbidden的错误。这个时候有两方式解决这个问题,第一可以修改项目的位置,把项目移到www的用户目录下去。第二可以修改项目的group属性。还有一种就是修改文件的rwx权限,让任何人都能访问到。