编辑
2024-08-13
Linux
0
请注意,本文编写于 262 天前,最后修改于 262 天前,其中某些信息可能已经过时。

目录

前言
文件权限的查看
文件权限的修改
chmod的简单使用方法
chmod的高级使用方法
修改文件所属用户与所属用户组
其他说明
nginx对文件权限的要求
应用到所有子文件夹

前言

在写代码自动化生成 神里绫华的狗 的页面内容时,忽然发现网页返回了403,也就是权限不够,特此记录重新复习一下Linux的权限系统

文件权限的查看

权限的查看使用ls命令即可

shell
ls -l

该命令会列出当前目录下所有文件的权限信息,就比如我在home下执行是这个样子(为了保密盖住了服务器信息)

image.png

注意到第一列

shell
drwxrwxr-x drwxrwxr-x -rw-rw-r-- -rw-rw-r--

是文件或者文件夹的权限,它一共有十位,第一位指示文件的类型是文件还是文件夹,后面九位是文件的具体权限

若第一位为d则为文件夹,若为-则为文件。后面的九位可以分为三组,分别代表

shell
文件所属用户 文件所属组 其他用户

的权限。如

shell
drwxrwxr-x

代表这是一个文件夹,并且它的权限是这样的

shell
文件所属用户rwx 文件所属组rwx 其他用户r-x

其中r代表可读,w代表可写,x代表可执行。那么这个的意思是,对于所有者和所属用户组的用户该文件可读可写可执行,对于其他用户,该文件仅可读与执行

文件权限的修改

chmod的简单使用方法

文件权限的修改需要用到chmod命令

shell
chmod <users> <+/-> <permissions> <filename>

其中users可以有如下组合

  • u 是文件所属用户
  • g 是文件所属用户组
  • o 是其他用户
  • a 是所有用户

+代表添加权限,-代表减少权限。权限的写法与上文展示的相同

  • r 读权限
  • w 写权限
  • x 执行权限

具体的例子如

shell
chmod ug +rw index.html

意为index.html的所属用户与所属组添加读写的权限

chmod的高级使用方法

实际上,Linux的权限系统是用二进制表示的,rwx合并为一个三位二进制数,1代表具有权限,0代表没有权限

如一个用户具有读写权限但没有可执行权限,即他的权限是rw-,那么用二进制表示为

shell
110

也就是十进制数6,三个这样的数组合就得到了一个文件对所有用户的权限,如

shell
777

意为该文件对所有用户的权限都是rwx,也就是可读可写可执行,而700就是仅有文件所有者可读可写可执行,其他用户不具有任何权限

用这种方式表示权限非常简洁,chmod也支持使用这种方式

shell
chmod 777 index.html

意为给index.html赋予权限777

注意

赋予777权限是一种相当危险的行为,这意味着该文件受到所有人的控制并可以被所有人执行。随意地赋予777权限可能会导致系统崩溃

修改文件所属用户与所属用户组

进行该操作需要使用chown命令

shell
chown <user>:<group> <filename>

如更改所属用户

shell
chown user index.html

可以将index.html的所属用户改为user,修改用户组也是同样的方式

chown :group index.html

当然也可以同时修改

shell
chown user:group index.html

其他说明

nginx对文件权限的要求

nginx要求可以通过网络请求访问的文件必须具有可执行权限x,否则就会出现403错误。修正该错误的方式是根据nginx的执行用户赋予文件相应的可执行权限,这也是文章开头提到的出现403错误的原因

应用到所有子文件夹

对于以上的所有命令,都可以加上-R参数,使该修改能递归应用到文件夹的所有子文件和子文件夹

完结撒花 ★,°:.☆( ̄▽ ̄)/$:.°★

本文作者:GBwater

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!