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/