文件权限控制与chmod

可读文件、可写文件

这个不多说来,你能打开的就是可读文件,你能修改的就是可写文件。

可执行文件

可执行文件格式ELF,MachO,PE

这个其实可以单独拿出来讲好几次,我们这里只提一提,不去研究可执行文件格式的数据结构。

可执行文件的格式不是指他的后缀名,在unix-like系统中并没有这样严格的概念,只有windows的可执行文件后缀名必须是exe

这里的格式是指他的二进制的数据结构,一般由很多复杂的字段构成。操作系统可以辨认这些格式并按一定的规则解析程序。

  • linux用的可执行文件格式是ELF格式。
  • mac用的可执行文件格式是MachO格式。
  • windoes用的可执行格式是PE格式。
  • 值得一提,还有一种跨平台的可执行格式解决方案,LIEF

操作权限

linux和mac虽然没有后缀名要求,但是却用操作权限来认证是否可执行。

  • r代表可读,w代表可写,x代表可执行。

为了表达他们,我们可以用3位的二进制,一位代表是否可写,一位代表是否可读,一位代表是否可执行。例如:

二进制操作码 对应的字母序列 十进制
000 - - - 0
001 - - x 1
010 - w - 2
011 - w x 3
100 r - - 4
101 r - x 5
110 r w - 6
111 r w x 7

对于一个可执行文件,需要它是可读的,因为操作系统需要读取它,还需要它是可执行的。

因此,我们得到了结论,只有两条可以满足这个条件。

二进制操作码 对应的字母序列 十进制
101 r - x 5
111 r w x 7

现在我们要给每个用户都分配操作权限。但是我的系统中有1000个用户,这可不行。那需要多大的空间。

最简单的解决方案就是给他们分组,unix-like系统用了一套分组方案,只需要9个二进制就可以描述文件对所有用户的权限

用户和用户组

用户和用户组的概念是在分时操作系统出现的时候被引入的,简单来说,用户就是一个账号,用户组就是用户们被划分成一个个集合,形成的一个个群体。

我们用u来代表一个用户,用g来代表一个用户组。

但是这样不在一个用户组的用户呢?那就用others,用o来代表他们

这样对于一个文件来说,对操作系统中的每一个用户都有一个关系了。不是u就是g就是o。

文件的操作权限也可以用9个二进制来描述。

更加简单的,我们可以用3个数字来描述,他们的取值在0-7之间

实战chmod命令

经过来上面的基础,我们终于可以来介绍chmod命令,这条命令可以赋予一个文件操作权限。

# 以下两种方式拥有所有权限
chmod 777 file
chmod a=rwx file	# a是all的意思,指的是u、g、o三者
# 添加权限
chmod u+w file
chmod ug+x file
# 添加多种权限
chmod u=rw file
chmod ug=rwx file
# 删除权限
chmod u-w file
chmod ug-x file
# 以数字的形式
chmod 755 file	# 请对照上面的表格
发布了43 篇原创文章 · 获赞 20 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_33384402/article/details/104929926
今日推荐