玩转Linux与运维岗(15)

一、权限概述

1、什么是权限

​ 在多用户计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权利。

在Linux 中分别有读、写、执行权限:

权限针对文件 权限针对目录
读r 表示可以查看文件内容;cat 表示可以(ls)查看目录中存在的文件名称
写w 表示可以更改文件的内容;vim 修改,保存退出 表示是否可以删除目录中的子文件或者新建子目录(rm/touch/mkdir)
执行x 表示是否可以开启文件当中记录的程序,一般指二进制文件(.sh) 表示是否可以进入目录中(cd)

注:一般给予目录读权限时,也将会给其执行权限,属于“套餐”组合

假设目录叫做 boxuegu

cd boxuegu

ls

ls /boxuegu

A 给boxuegu文件夹的权限

B root

2、为什么要设置权限

1)服务器中的数据价值

2)员工的工作职责和分工不同

3)应对自外部的攻击

4)内部管理的需要

3、Linux中的权限类别

Linux 系统一般将文件权限分为3 类:

read(读)

write(写)

execute(执行)

对文件有读,写,执行的权限呢?

4、Linux中文件所有者

1)所有者分类(谁)

对于文件的所有者,又分为3类:
user(属主)
group(属组)
other(其他用户)

user(属主):文件的创建者或拥有者,换句话说,某个账户对这个文件有的权限。

A 一个人

B 多个人

group(属组):文件所属的用户组,换句话或,某个用户对这个文件有的权限。

A 一个人

B 多个人

other(其他用户):除了上面提到的属主和属组之外的所有用户,对这个文件有的权限

A 一个人

B 多个人

举例:
​ 爱情公寓拆迁,拆迁款按照政策,分配如下:一半给张伟,另一半由爱情公寓3601和3602室的其余的伙伴平分。如果把拆迁款看做一个文件,那么这个文件的权限是:

属主:张伟
属组:3601和3602的其他伙伴,他们是一个组
其他用户:没有

2)所有者的表示方法

① u(the user who owns it)(属主权限)

u表示,文件所有者,默认为文档的创建者

② g(other users in the file’s group)(属组权限)

g表示,在文件所属组(默认是创建文件的用户的主组)里的用户

③ o(other user not in the file’s group)(其他权限)

o表示,既不是文件的创建者,也不在文件属组里的用户,称为其他人

注意:某些资料上会提到linux ugo权限,所谓ugo,就是User, Group,Other三个单词的首字母。就指属主,主组,其他三种权限。

ugo等于u+g+o

a (all)等于u+g+o

我们后面设置文件权限的时候,会用到

④ root用户(超级管理员)

​ 在Linux 中,还有一个神一样的用户,这就是root 用户,因为在所有用户中它拥有最大的权限 ,可以管理着普通用户。因此以后在设置文档的权限的时候不必考虑root 用户。

二、普通权限管理

1、ls查看文件权限

​ 要设置权限,就需要知道文件的一些基本属性和权限的分配规则。在Linux 中,ls 命令常用来查看文档的属性,用于显示文件的文件名和相关属性。

​ ls命令我们之前学过,用于查看文件信息,这里我们使用之前提到过的一个用法,ll

用法一:ll
示例代码:
#ll
含义:查看当前文件夹下的所有目录和文件的详细信息

玩转Linux与运维岗(15)_第1张图片

2、文件权限详解

Linux 中存在三类身份:

属主(owner拥有者)
属组(group用户组)
其他用户(others)

各自有不同的权限,对于一个文档来说,其权限具体分配如下:

玩转Linux与运维岗(15)_第2张图片

linux一共有7种文件类型,分别如下:
-:普通文件
d:目录文件
l: 软链接(类似Windows的快捷方式)

(下面四种是特殊文件)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如猫等串口设备)
s:套接口文件/数据接口文件(例如启动一个MySql服务器时会产生一个mysql.sock文件)

文件权限对应关系(对应数字后面有用

权限 对应数字 意义
r 4 可读
w 2 可写
x 1 可执行
前10位字符表示含义:
第1位:表示文件类型
第2-4位:表示文件所有者的权限情况,第2位r表示读权限,第3位w表示写权限,第4位x表示执行权限。
第5-7位:表示与文件所有者同组的用户的权限情况,第5位r表示读权限,第6位-表示不可写,第7位x表示执行权限。
第8-10位:表示除了组外的其他用户权限情况,第8位r表示读权限,第9位-表示不可写,第10位x表示执行权限。

前10位字符表示含义:
第1位:表示文件类型
第2-4位:表示文件属主(所有者)的权限情况
第5-7位:表示与文件属组(用户组)的用户的权限情况
第8-10位:表示其他(除了属主和属组之外的其他用户)权限情况

3、设置文件/文件夹权限

命令:chmod

语法:# chmod [选项] 权限模式 文档

作用:增加或者减少当前文件所有者的权限(注意,不能改变所有者只能改变现有所有者的权限

常用选项:-R:递归设置权限 (当文档类型为文件夹的时候)

权限模式:就是该文档需要设置的权限信息

文档:可以是文件,也可以是文件夹,可以是相对路径也可以是绝对路径。

注意点:如果想要给文档设置权限,操作者要么是root 用户,要么就是文档的所有者。

① 字母形式(对应前面提到的u g o,r w x的表示方法)

使用root用户登录

用法一:chmod -R 要增加的权限 文件名
示例代码:
#chmod -R u+x quanxian.txt
含义:对于quanxian.txt文件,给 属主 增加 执行 权限

玩转Linux与运维岗(15)_第3张图片

用法二:chmod -R 多个要增加的权限 文件名
示例代码:
#chmod -R g+x,o+x quanxian.txt
含义:对于quanxian.txt文件,给 属组 增加 执行 权限,给 其他 增加 执行权限。
注意:同时改变多个对象的权限,中间使用“逗号“分割。

玩转Linux与运维岗(15)_第4张图片

用法三:chmod -R 要减少的权限 文件名
示例代码:
#chmod -R o-x quanxian.txt
含义:对于quanxian.txt文件,给 其他 减少 执行权限。

玩转Linux与运维岗(15)_第5张图片

用法四:chmod -R 要赋予的权限 文件名
示例代码:
#chmod -R u=rwx,g=rwx,o=rwx quanxian.txt
含义:对于quanxian.txt文件,给属主,属组,其他,都 赋予 读,写,执行权限

玩转Linux与运维岗(15)_第6张图片

用法五:chmod -R 要赋予的权限 文件夹
示例代码:
#chmod -R a=rwx quanxianfolder
含义:对于quanxianfolder文件夹,给所有用户(属主,属组,其他),都 赋予 读,写,执行权限

玩转Linux与运维岗(15)_第7张图片

如果只想给属主和属组赋予读写权限,要怎么写?
答:u+rw,g+rw

如果同时去掉属组其他权限,要怎么写?
答:g-w,o-w

总结:

权限设置要考虑的因素:
首先:
    给谁设置?
    u    可以给属主设置权限
    g    可以给属组设置权限
    o    可以给其他用户设置权限
    ugo  给所有用户设置权限(++其他)
    a    给所有用户设置权限

第二:
    怎么设置?
    +    添加权限
    -    减少权限
    =    赋予权限

第三:
    增加减少或者赋予什么权限?
    r    读
    w    写
    x    执行

相关参数总结:

字母 选项 作用
u(谁) user 属主
g(谁) group 属组
o(谁) other 其他用户
a(谁) all 所有人(包含ugo)
+(作用) 增加作用
-(作用) 移除作用
=(作用) 等于 赋值作用
r(权限) read 可读权限
w(权限) write 可写权限
x(权限) execute 可执行权限
-(权限) - 没有任何权限

注:

1)如果同时设置多个身份的权限时候,每个身份之间需要通过英文逗号分开。

例如:

#chmod -R u=rwx,g=rwx,o=rwx quanxian.txt

2)在权限设置中,如果有两部分权限一样则可以合在一起写

例如:
# chmod u=rwx,g=rwx
等价于:
# chmod ug=rwx

作业:如果想给属主,属组,其他同时设置权限读写执行,有几种写法,分别是?

② 数字形式

​ 经常会在技术网站上看到类似于# chmod 777 a.txt 这样的命令,这种形式称之为数字形式权限

文件权限与数字的对应关系,我们会发现没有7这个数字

权限 对应数字 意义
r 4 可读
w 2 可写
x 1 可执行

权限与数字对应详解

玩转Linux与运维岗(15)_第8张图片

数字 权限 作用
0 - 不能读,不能写,不能执行
1 execute 不能读,不能写,可执行
2 write 不能读,可写,不能执行
3 2+1 不能读,可写,可执行
4 read 可读,不能写,不能执行
5 4+1 可读,不能写,可执行
6 4+2 可读,可写,不能执行
7 4+2+1 可读,可写,可执行

技巧:不要背上面的表格,只要记住R,W,X对应4,2,1,之后做10以内加法

用法六:chmod -R 要赋予的权限(数字形式) 文件名
示例代码:
#chmod -R 765 quanxian.txt
含义:对于quanxian.txt文件,给属主所有权限,属组读写权限,其他读和执行权限
注意:
全部权限:7 = r+w+x = 4 + 2 + 1
读写权限:6 = r+w = 4 + 2
读和执行:5 = r+x = 4 + 1
综上所述,u=7,g=6,o=5

在这里插入图片描述

问题:用超级管理员设置文档的权限命令是# chmod -R 731 shop,请问这个命令有没有什么不合理的地方?

分析:

所有者权限:7 = 4 + 2 + 1 = 读 ++ 执行
同组用户权限:3 = 2 + 1 = 写 + 执行
其他用户权限:1 = 执行

问题在权限731中的3权限,3表示写+执行权限,但是写又必须需要能打开之后才可以写,因此必须需要具备可读权限,因此此权限设置不合理。

注:实际工作中,各位小伙伴在设置权限时一定不要设置这种"奇葩权限",一般情况下,单独出现2、3的权限数字一般都是有问题的权限。

一般linux系统中,不允许出现777的权限。

755

③ 练习题

1)使用root 用户设置文件夹/root/shop 的权限为:属主全部权限,属组拥有读和执行权限,其他用户没有权限,请使用数字权限的形式设置

rwx=7,rx=4+1=5,0
# chmod -R 750 /root/shop

2)请置文件/root/readme.txt 的权限,权限要求为:

​ 属主拥有全部权限,属组要求可以读写,其他用户只读,要求使用数字形式;

rwx=7,rw=4+2=6,r=4
# chmod 764 /root/readme.txt

3)请设置/root/email.doc权限,权限要求只有属主可以读写,除此之外任何人没有权限;

rw=6,0,0
# chmod 600 /root/email.doc

4、特别说明

在Linux 中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有写权限,如果有才可以删除(同时必须具备执行权限)。

权限针对文件 权限针对目录
读r 表示可以查看文件内容 表示可以(ls)查看目录中存在的文件名称
写w 表示可以更改文件的内容 表示是否可以删除目录中的子文件或者新建子目录(rm/touch/mkdir)
执行x 表示是否可以开启文件当中记录的程序,一般指二进制文件(.sh) 表示是否可以进入目录中(cd)

你可能感兴趣的:(Linux,linux,运维,服务器)