在写代码自动化生成 神里绫华的狗 的页面内容时,忽然发现网页返回了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 许可协议。转载请注明出处!