Linux文件权限在网上的许多地方都有很详细的说明文档。实际上,它是我们在初学Linux时最先了解的方面之一。说到你的个人文件和文件夹,Linux权限是第一层安全,因为它们控制着谁可以访问及/或更改它们(而在Linux中,严格上来说一切都是文件,不过那是另一个探讨的话题。)
由于网上有很多关于Linux权限方面的说明文档,我们在此就不深入全面地解释了。相反,本文主要从门外汉的角度向可能刚接触Linux、不了解其他地方官方说明文档的那些人进行解释。如果是普遍的家庭Linux用户,你可能不经常更改权限。然而,如果是高级用户或系统管理员,权限却是用户的安全策略的一个重要部分。让我们开始吧!
如果是普通的家庭Linux用户,Linux权限有两个分支:访问限制和用户限制。
访问限制相当简单直观:读取、写入和执行。读取权限授予查看文件或文件夹内容的功能,这意味着,如果你没有读取权限,就无法查看文件或文件夹的内容。写入权限授予了修改文件或文件夹的功能。执行权限实际上存在一些常见的误解。说到文件,执行让你可以“运行”文件,比如.deb程序包安装文件,或者可能是bash脚本。说到文件夹,执行权限让你可以更改目录(cd),进入到文件夹。虽然你可以使用ls命令来查看拥有读取权限的文件夹的内容,但是你实际上无法通过cd进入到没有执行权限的文件夹。
你也许不是经常地改动权限。然而,如果是高级用户或系统管理员,权限是用户的安全策略的一个重要部分。让我们开始吧!
Linux chown
类似访问限制,用户限制也有三种类型:用户、用户组及所有/其他用户。用户相当明显,它是指文件拥有者。这可以用Linux chown命令来更改。用户组与用户所在的一个或多个组密切相关。如果是运行Ubuntu或Mint等预配置发行版的典型家庭用户,你的用户帐户默认情况下可能已经在几个用户组中。如果你是系统上的唯一用户,那么用户组对你来说其实不用担心。然而,不妨以办公室环境为例。会计部门的用户可能有自己的会计用户组,所以人力资源部门的人想查看会计部门的某个文件,他们就无法查看,除非他们也在会计用户组。最后一种用户限制是所有/其他用户。你也可以把这看成是“全世界”权限,这既不是指用户所有人,也不在该文件用户组中的每个人。
结合访问限制和用户限制为我们赋予了访问任何特定文件或文件夹的全面权限。但是你可能会问,我们如何知道哪些文件/文件夹拥有什么样的权限?
如何检查文件/文件夹权限?
想检查任何一个文件或文件夹的当前权限,最好的办法就是通过ls –l命令。这列出了当前工作目录(默认情况下是/home/user)中的所有文件。一旦完成这一步,你会看到几行输出,每一行的开头都像这样:
drwxrwxrwx
drwxr--r--
-r-xr-xr-x
Linux权限
这些值告诉了我们每一个特定的文件/文件夹的权限。但是如果你对这不熟悉,这看起来可能差不多就像一堆垃圾内容,所以我们不妨叙述得稍微具体一点。
这看起来更容易读懂一点吗?你会注意到,在开头的d标志后面,有三组rwx。你可能也猜到了,rwx意味着读取、写入和执行。这三组是用户限制,即用户、用户组和所有用户。开头的d标志表明该文件是不是目录(文件夹)。
所以就第一行而言,文件是目录,用户、用户组和所有用户拥有读取、写入和执行权限,即全面访问。在第二行,用户拥有读取、写入和执行权限,但是用户组和所有用户只有读取权限。
如何改变Linux文件或文件夹的权限?
这可以用chmod(改变模式)命令来实现。chmod可与数字值或字母值结合使用。
上面几个例子中的每一组权限都被赋予了相应的数字值。读取(r)权限的值是4,写入(w)权限的值是2,执行(x)权限的值是1,三个值加起来是7。所以,如果我们基于数字值想要查看上述文件的权限,那么看起来会是这样子:
d | 7 | 7 | 6
d | 7 | 4 | 4
- | 5 | 5 | 5
chmod示例
你不会在任何地方看到这个实际的输出,但是你可以使用这些数字值改变权限。比如说:
chmod 755 [file/folder name]