Linux / macOS操作系统(通常是UNIX系统)中的每个文件都有3个权限:读、写、执行。
进入一个文件夹,运行ls -al命令。
在每个文件行上看到的奇怪字符串,比如drwxr-xr-x,定义了文件或文件夹的权限。
让我们仔细分析它。
第一个字母表示文件的类型:
- – 意思是它是个普通文件
- d表示它是一个目录
- l是说这是一种连接
然后你有三部分值类型:
- 第一组表示文件所有者的权限
- 第二组表示与该文件关联的组的成员的权限
- 第三个集合表示everyone else的权限
这些集合由3个值组成。rwx意味着特定角色具有读、写和执行访问权限。任何被删除的内容都用-交换,它允许您形成各种值和相对权限的组合:rw-、r——、r-x,等等。
您可以使用chmod命令更改给予文件的权限。
chmod有两种使用方式。第一个是使用符号参数,第二个是使用数值参数。让我们先从符号开始,这更直观。
你输入chmod,后面是一个空格和一个字母:
- a代表所有
- u代表用户
- g代表群
- o代表其他人
然后键入+或-来添加权限,或删除权限。然后输入一个或多个权限符号(r、w、x)。
然后是文件或文件夹名称。
下面是一些例子:
chmod a+r filename #everyone can now read
chmod a+rw filename #everyone can now read and write
chmod o-rwx filename #others (not the owner, not in the same group of the file) cannot read, write or execute the file
您可以应用相同的权限,以多个角色添加多个字母前的+/-:
chmod og-r filename #other and group can't read any more
在编辑文件夹的情况下,可以使用-r (recursive)标志将权限应用到该文件夹中包含的每个文件。
数值参数更快,但我发现如果你不每天使用它们,很难记住它们。您使用一个数字表示角色的权限。这个数值最大值可以是7,可以这样计算:
- 1如果有执行权限
- 2如果有写权限
- 4如果有读权限
这给了我们4种组合:
- 0 没有权限
- 1 可执行
- 2 可写
- 3 可写,执行
- 4 可读
- 5 可度,执行
- 6 可以读写
- 7 能读、写、执行
我们以3对的方式使用它们,来设置所有3组的权限:
chmod 777 filename
chmod 755 filename
chmod 644 filename