> 技术文档 > Linux权限的概念

Linux权限的概念

Linux权限是操作系统用来限制对资源访问的一种机制,主要涉及读、写、执行三种基本权限,分别针对文件所有者、所属组和其他用户三类对象进行定义,本质上是为了更好的进行用户管理

权限=人+文件属性

权限是针对特定群体的——与人有关(普通用户 or root)

目标主体,必须天然具备对应的属性,才能访问(就像不能在面包店吃川菜)

文件的属性:可读(r),可写(w),可执行(x)

约束属性使得可以约束群体

Linux角色的问题

权限是依附于角色的(就像是老板的权限是由老板的角色得来的,而不是担任老板的那个人)

角色:

1、拥有者角色

2、所属组角色

3、other角色

系统识别访问角色,如果不是拥有者或者所属组,那么就是other

角色是由人扮演的,人和角色并不冲突,linux用户可以具有root账号,root账号又可以作为拥有者角色和所属组角色

所属组角色:

假设系统权限只有 拥有者和other,没有group,如果让别人看,只能把other权限打开,其它很多人都可以看了。

所以引入了group所属组,只需要把组权限放开,other就看不了。对文件权限,进行局部范围的组级别的管理

文件权限属性

文件的权限:r(只读) w(只写) x(可执行权限)

文件属性第一列用来表示文件类型:

-:普通文件

d:目录

剩下的33为一组,分别表示拥有者权限、所属组权限、other权限

第一个位置表示是否可读(有就用r表示,没有就用-来表示),第二个位置表示是否可写,第三个位置表示是否可执行

它们的位置顺序是严格规定的,不可更改

权限的指令操作

权限=人+文件属性

修改权限,要么修改人,要么修改文件属性

先修改文件属性:

只有拥有者,超级用户可以修改文件属性

chmod u-w 代表拥有者去掉w权限

u就是user的意思

chmod u+rw 就是添加文件属性

u-rwx 就是去掉所有权限

chmod g-w 文件名 就是给所属组去掉w文件属性

chmod o-r 文件名 就是给other去掉文件r权限

给所有人 就用a

chmod a-rwx 文件名

没有权限会有什么表现

root虽然可以是other,但不受权限约束,可以无视别人给它的约束,所以root不会有影响

如果拥有者把自己的权限全去掉,但是所属组里有自己并且拥有权限,照样没有权限去rw

因为用户访问文件的时候,确定自己相对于文件的身份角色,只会验证一次!换句话说:权限只会验证一次

关于可执行

文件要被执行:

1、该文件本身就是一个可执行的文件

2、文件本身具有可执行权限

给x权限,不是能让x执行,而是当你想要执行的时候,OS允许x执行

可以发现不管是可读 可写 可执行都是两态的

可以用1和0表示,每一列第一个字符当作类型,剩下的9列字符,三三为一组分别表示拥有者权限,所属组权限,other权限

也就是一个人的权限可以用8进制表示

1个8进制代表3个比特位

111 代表rwx 000代表---

  • 读 (r): 4

  • 写 (w): 2

  • 执行 (x): 1

所以

1代表x 2代表w 3代表wx 4代表r 5代表rw 6代表rw 7代表rwx

使用chmod 一次性给到 拥有者 所属组 other,这就是8进制方案

更改文件的所属组拥有者

更改拥有者:

chown

更改所属组

chgrp

同时更改 拥有者和所属组

chown 账号名:账号名 文件名

注意:文件拥有者不能更改文件的拥有者所属组,只能更改文件属性

因为更改文件属性不会将文件给到别人,因为文件给另一个人或者组,需要别人“允许”(现实生活中就是会影响别人)

需要超级用户的权限 使用sudo