在写代码自动化生成 神里绫华的狗 的页面内容时,忽然发现网页返回了403,也就是权限不够,特此记录重新复习一下Linux的权限系统
权限的查看使用ls命令即可
shellls -l
该命令会列出当前目录下所有文件的权限信息,就比如我在home下执行是这个样子(为了保密盖住了服务器信息)

注意到第一列
shelldrwxrwxr-x drwxrwxr-x -rw-rw-r-- -rw-rw-r--
是文件或者文件夹的权限,它一共有十位,第一位指示文件的类型是文件还是文件夹,后面九位是文件的具体权限
若第一位为d则为文件夹,若为-则为文件。后面的九位可以分为三组,分别代表
shell文件所属用户 文件所属组 其他用户
的权限。如
shelldrwxrwxr-x
代表这是一个文件夹,并且它的权限是这样的
shell文件所属用户rwx 文件所属组rwx 其他用户r-x
其中r代表可读,w代表可写,x代表可执行。那么这个的意思是,对于所有者和所属用户组的用户该文件可读可写可执行,对于其他用户,该文件仅可读与执行
文件权限的修改需要用到chmod命令
shellchmod <users> <+/-> <permissions> <filename>
其中users可以有如下组合
u 是文件所属用户g 是文件所属用户组o 是其他用户a 是所有用户+代表添加权限,-代表减少权限。权限的写法与上文展示的相同
r 读权限w 写权限x 执行权限具体的例子如
shellchmod ug +rw index.html
意为index.html的所属用户与所属组添加读写的权限
实际上,Linux的权限系统是用二进制表示的,rwx合并为一个三位二进制数,1代表具有权限,0代表没有权限
如一个用户具有读写权限但没有可执行权限,即他的权限是rw-,那么用二进制表示为
shell110
也就是十进制数6,三个这样的数组合就得到了一个文件对所有用户的权限,如
shell777
意为该文件对所有用户的权限都是rwx,也就是可读可写可执行,而700就是仅有文件所有者可读可写可执行,其他用户不具有任何权限
用这种方式表示权限非常简洁,chmod也支持使用这种方式
shellchmod 777 index.html
意为给index.html赋予权限777
注意
赋予777权限是一种相当危险的行为,这意味着该文件受到所有人的控制并可以被所有人执行。随意地赋予777权限可能会导致系统崩溃
进行该操作需要使用chown命令
shellchown <user>:<group> <filename>
如更改所属用户
shellchown user index.html
可以将index.html的所属用户改为user,修改用户组也是同样的方式
chown :group index.html
当然也可以同时修改
shellchown user:group index.html
nginx要求可以通过网络请求访问的文件必须具有可执行权限x,否则就会出现403错误。修正该错误的方式是根据nginx的执行用户赋予文件相应的可执行权限,这也是文章开头提到的出现403错误的原因
对于以上的所有命令,都可以加上-R参数,使该修改能递归应用到文件夹的所有子文件和子文件夹
完结撒花 ★,°:.☆( ̄▽ ̄)/$:.°★ 。
本文作者:GBwater
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!