谁动了我的文件--文件权限管理

这篇文章首发于我的博客,转载可注明出处。

这篇文章会讲述文件权限相关的内容,并告诉你为什么会出现“permission deny”和如何解决这个问题。

文件属性和文件权限

在谈文件权限之前我们先在终端键入ls -l,看看会发生什么。

$ ls -l
total 40
-rw-r--r--  1 adambee  staff   589 12  9 11:28 asset-manifest.json
-rw-r--r--  1 adambee  staff  3758 12  9 11:28 favicon.ico
-rw-r--r--  1 adambee  staff   538 12  9 11:28 index.html
-rw-r--r--  1 adambee  staff   298 12  9 11:28 manifest.json
-rw-r--r--  1 adambee  staff  3646 12  9 11:28 service-worker.js
drwxr-xr-x  4 adambee  staff   136 12  9 11:28 static

在这里,每一行信息都包含了某个文件或目录的基本信息,我们只讨论前十个字符,即-rw-r--r--,依次给它们标号为1~10。
- 第一个字符-d,表示了文件类型,-指文件,d指目录,后面还会遇到其他的文件类型。
- 剩下九位我们分三组,每组三位
- 第一组rw-rwx表示文件所有者权限
- 第二组r--r-x表示用户组权限
- 第三组r--r-x表示其他人权限

现在知道了分类,我们再来看看权限分别是什么意思。
- r表示可读,对文件而言就是可以读取里面的内容,对目录而言就是可以看到当前目录下的文件或目录
- w表示可写,对文件而言就是可以对其进行修改,对目录而言就是可以在当前目录下创建新的文件或目录
- x表示可执行,对文件而言就是可以将其作为一个程序进行执行,对目录而言就是可以进入其中
- -表示没有对应的权限

举例来讲,drwxr-xr-x表示这是一个目录,对文件拥有者有可读可写可执行的权限,对同组的用户有可读可执行的权限,对其他用户有可读可执行的权限。

改变文件属性和权限

既然权限这么重要,自然学习改变权限也是很有必要了解的。在这里和前文一样,我们只讨论前十个字符的操作。
可以试试这条命令:

$ chmod -x static
$ ls -ld static
drw-r--r--  4 adambee  staff  136 12  9 11:28 static
$ cd static
cd: permission denied: static

这时我们发现没有权限进入static目录了。

再来试试看这个命令:

$ chmod 755 static
$ ls -ld static
drwxr-xr-x  4 adambee  staff  136 12  9 11:28 static
$ cd static

神奇的发现又可以进入static目录了。

其实以上就是我们常用来修改权限的两种方式。

符号类型

  • + 给文件或目录添加指定权限
  • - 删除文件或目录指定的权限
  • = 设置指定的权限
$ chmod u=rwx,g=rw,o=r index.html
$ ls -l index.html
-rwxrw-r--  1 adambee  staff   538B 12  9 11:28 index.html

上面这个例子里,我们给index.html文件的所有者rwx的权限,给同组用户rw的权限,给其他用户r的权限。

数字类型

为了方便起见,我们用八进制数字来指定文件的权限,用每种身份的权限的数字和来表示当前权限。

  • r 4
  • w 2
  • x 1
$ chmod 000 index.html
$ ls -l index.html
----------  1 adambee  staff  538 12  9 11:28 index.html

发现我们对index.html文件没有任何操作权限。

$ chmod 755 index.html
$ ls -l index.html
-rwxr-xr-x  1 adambee  staff   538B 12  9 11:28 index.html

上面这个例子里,我们给index.html文件的所有者rwx的权限,给同组用户rx的权限,给其他用户rx的权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值