Linux 中的权限
Linux 是一个多用户操作系统,因此它具有防止人们访问彼此机密文件的安全性。
介绍
当您执行“ls”命令时,您不会获得任何有关文件安全性的信息,因为默认情况下“ls”仅列出文件名。您可以通过在“ls”命令中使用“选项”来获取更多信息。所有选项都以“-”开头。例如,要使用“长列表”选项执行“ls”,您可以键入 ls -l
当您这样做时,每个文件将以长格式列在单独的行中。下面的窗口中有一个示例。
这些行中有很多信息。
- 第一个字符几乎总是“-”(表示它是一个文件)或“d”(表示它是一个目录)。
- 接下来的九个字符(rw-r–r–) 显示安全性;我们稍后再谈。
- 下一列显示文件的所有者。在这种情况下是我,我的用户 ID 是“aditya314”。
- 下一列显示文件的组所有者。就我而言,我想授予“aditya314”组对这些文件的特殊访问权限。
- 下一列显示文件的大小(以字节为单位)。
- 下一列显示上次修改文件的日期和时间。
- 当然,最后一列给出了文件名。
解密安全字符需要做更多的工作。
了解安全权限
首先,您必须将这九个字符视为三组三个字符(请参阅底部的框)。三个“rwx”字符的每一个都表示您可以对文件执行的不同操作。
--- --- ---
rwx rwx rwx
user group other
读、写、执行和——
'r' 表示您可以“读取”文件的内容。
“w”表示您可以“写入”或修改文件的内容。
“x”表示您可以“执行”该文件。仅当文件是程序时才授予此权限。
如果任何“rwx”字符被“-”替换,则该权限已被撤销。
用户、组和其他
user – 用户权限仅适用于文件或目录的所有者,不会影响其他用户的操作。
group – 组权限仅适用于已分配给文件或目录的组,它们不会影响其他用户的操作。
其他 - 其他权限适用于系统上的所有其他用户,这是您最想观看的权限组。
读取安全权限
例如,考虑用户对某些文件的权限是“rw-”作为前三个字符。这意味着文件的所有者(“aditya314”,即我)可以“读”它(查看它的内容)和“写”它(修改它的内容)。我无法执行它,因为它不是程序;它是一个文本文件。
如果“rx”是第二组 3 个字符,则表示“aditya314”组的成员只能读取和执行文件。
最后三个字符显示在此 Linux 系统上拥有用户 ID 的任何人所允许的权限。假设我们有权限(“r-”)。这意味着我们 Linux 世界中的任何人都可以读取,但他们不能修改文件的内容或执行它。
更改安全权限
用于更改文件安全权限的命令称为“chmod”,代表“更改模式”,因为九个安全字符统称为文件的安全“模式”。
- 您给“chmod”命令的第一个参数是“u”、“g”、“o”。我们用:
u 为用户
g 团体
o 对于其他人,
您也可以使用它们的组合 (u,g,o)。
这指定要修改三个组中的哪一个。 - 本次使用后
'+' 用于添加
'-' 用于删除
和一个“=”用于分配权限。 - 然后指定要更改的权限 r、w 或 x。
在这里,您也可以使用 r、w、x 的组合。
这指定了您要修改的三个权限“rwx”中的哪一个 - use 可以使用逗号修改更多权限
- 最后,您要更改其权限的文件的名称
一个例子将更清楚地说明这一点。
例如,如果您想为文件“xyz.txt”向世界(“其他”)授予“执行”权限,您可以首先键入
chmod o
现在,您将键入一个“+”来表示您正在“添加”一个权限。
chmod o+
然后你会输入一个“x”来表示你正在添加“执行”权限。
chmod o+x
最后,指定要更改的文件。
chmod o+x xyz.txt
您可以在下图中看到变化。
您还可以一次更改多个权限。例如,如果您想取消所有人的所有权限,您可以输入
chmod ugo-rwx xyz.txt
上面的代码撤销了所有用户(u)、组(g)和其他人(o)对文件 xyz.txt 的所有读取(r)、写入(w)和执行(x)权限,这导致了这个结果。
另一个例子可以是这样的:
chmod ug+rw,o-x abc.mp4
上面的代码为 user(u) 和 group(g) 添加了 read(r) 和 write(w) 权限,并撤销了其他人 (o) 对文件 abc.mp4 的执行 (x) 权限。
像这样的东西:
chmod ug=rx,o+r abc.c
为 user(u) 和 group(g) 分配 read(r) 和 execute(x) 权限,并向其他人添加文件 abc.c 的读取权限。
您可以调用、撤销和分配多种文件权限组合。您可以在您的 linux 系统中尝试一些。
八进制符号
您也可以像这样使用八进制符号。
使用八进制符号表代替 'r'、'w' 和 'x'。每个数字八进制符号可以用于组“u”、“g”、“o”中的任何一个。
因此,以下工作相同。
chmod ugo+rwx [file_name]
chmod 777 [file_name]
它们都为所有组提供完整的读写和执行权限(代码=7)。
这个也是一样。。
chmod u=r,g=wx,o=rx [file_name]
chmod 435 [file_name]
这两个代码都为用户提供了读取(代码= 4)权限,为组提供了写入和执行(代码= 3)权限,并为其他人提供了读取和执行(代码= 5)权限。
甚至这个……
chmod 775 [file_name]
chmod ug+rwx,o=rx [file_name]
这两个命令都向用户和组授予所有权限(代码 = 7),为其他人读取和执行(代码 = 5)。
进一步学习
默认的 Linux 安全模型有点不灵活。要向一组人授予特殊访问权限(例如修改权限),您必须让系统管理员创建一个包含这些人的组。此外,如果您想向另一组人授予一组不同的访问权限(例如读取访问权限),则不能这样做,因为您只能为每个文件或目录分配一个组所有者。要解决这个问题,您可以使用 ACL(访问控制列表)。您可以从此链接了解有关它们的更多信息:ACL
参考资料:askubuntu
linuxcommand.org