Linux文件权限如何工作

时间:2020-01-09 14:16:47  来源:igfitidea点击:

Linux(以及几乎所有其他Unixish系统)具有以下三个用户类:

  • 用户(u):文件的所有者
  • 组(g):组中的其他用户(用于访问文件)
  • 其他(o):其他所有人

您可以在每个文件上设置以下模式。
在Linux和UNIX中,一组权限称为模式:

  • 读(r)
  • 写(w)
  • 执行[x)

但是,以上三种模式或权限对文件和目录的含义不同:

Linux读取模式权限

  • 对文件的读取访问权限使您可以查看文件
  • 对目录的读访问权限使您可以使用ls命令查看目录内容

写入模式权限

  • 对文件的写访问权允许您写入文件
  • 目录上的写访问权限允许您删除或添加新文件

执行模式权限

  • 对文件执行访问允许运行程序或脚本
  • 对目录执行访问使您可以访问目录中的文件

八进制数字和权限

您可以使用八进制数字表示模式/权限:

  • r:4
  • w:2
  • x:1

例如,对于文件所有者,您可以如下使用八进制模式。
八进制文件的读取,写入和执行(完全)权限为0 + r + w + x = 0 + 4 + 2 + 1 = 7

八进制文件的唯一读写权限为0 + r + w + x = 0 + 4 + 2 + 0 = 6

仅对八进制文件的读取和执行权限为0 + r + w + x = 0 + 4 + 0 + 1 = 5

使用以上方法计算组和其他人的权限。
假设您希望对所有者授予完全许可权,对组拥有读取和执行许可权,而对其他用户则拥有只读许可权,那么解决方法:您需要按以下方式计算许可权:用户= r + w + x = 0 + 4 + 2 + 1 = 7组= r + w + x = 0 + 4 + 2 + 0 = 6其他= r + w + x = 0 + 0 + 0 + 1 = 1

有效许可为761。

chmod命令

要设置文件许可权,解决方法:您需要使用chmod命令:chmod {mode} {file-name}

要设置文件许可权761,解决方法:您需要使用chmod命令,如下所示:

# chmod 0761 file

设置任何人都可读且所有者只能写的文件:

# chmod 644 file

设置所有人可读/可执行并且所有者只能写的文件:

# chmod 755 file

您可以使用chmod命令上的-R选项更改目录中所有文件和目录的权限。
例如,要设置其他人读取和执行对所有文件和目录(以及目录中的文件和目录)的访问权限,解决方法:您需要按如下方式执行命令(即,更改植根于文件中的文件层次结构的模式,而不仅仅是文件本身):

# chmod -R 755 directory-name/