07-`Linux`权限管理

Linux权限管理

首先要搞清楚一个问题,Linux 系统中为什么需要设定不同的权限,所有用户都直接使用管理员(root)身份不好吗?

由于绝大多数用户使用的是个人计算机,使用者一般都是被信任的人(如家人、朋友等)。在这种情况下,大家都可以使用管理员身份直接登录。但在服务器上就不是这种情况了,往往运行的数据越重要,价值越高,则服务器中对权限的设定就要越详细,用户的分级也要越明确。

Windows 系统不同,Linux 系统为每个文件都添加了很多的属性,最大的作用就是维护数据的安全。举个简单的例子,在你的 Linux 系统中,和系统服务相关的文件通常只有root用户才能读或写,就拿 /etc/shadow 这个文件来说,此文件记录了系统中所有用户的密码数据,非常重要,因此绝不能让任何人读取(否则密码数据会被窃取),只有root才可以有读取权限。

此外,如果你有一个软件开发团队,你希望团队中的每个人都可以使用某一些目录下的文件,而非团队的其他人则不予以开放。只需要将团队中的所有人加入新的群组,并赋予此群组读写目录的权限,即可实现要求。反之,如果你的目录权限没有做好,就很难防止其他人在你的系统中乱搞。

比如说,本来 root 用户才能做的开关机、新增或删除用户等命令,一旦允许任何人拥有这些权限,系统很可能会经常莫名其妙的挂掉。而且,万一 root 用户的密码被其他人获取,他们就可以登录你的系统,从事一些只有 root 用户才能执行的操作,这是绝对不允许发生的。

因此,在服务器上,绝对不是所有的用户都使用root身份登录,而要根据不同的工作需要和职位需要,合理分配用户等级和权限等级

Linux的文件类型

通过 ls -l 或者ll命令,我们就可以查看当前目录下所有文件和目录各自的属性

在这里插入图片描述

显示的执行结构中,每行代表一个文件或目录,其中第一个字符表示的就是文件的类型

第一个字符文件类型
-普通文件,包括纯文本文件、二进制文件、各种压缩文件等。
d目录,类似 Windows 系统中的文件夹。
b块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
c字符设备文件,例如键盘、鼠标等。
s套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。
p管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。
l链接文件,类似 Windows 系统中的快捷方式。

开发当中最常见的三种文件类型分别是-,d,|

Linux中的权限

Linux是一个多用户多任务的操作系统而且它把一切都看成了目录和文件来对待,为了安全性Linux把这些文件和目录分配了权限.在现实开发当中,我们常常会听到运维工程师说一种这样的数字组合:777,666,755,644

这些数字不是密码,而是Linux的权限

Linux中的权限分类

r (read),可读权限,权重值4

w(write),可写权限,权重值2

x(execute),可执行权限,权重值1

注意:没有权限用(-)横杠来表示,可以把没有权限的权重值当作0来对待

Linux当中查看文件的权限类型

Linux当中如果我们输入ls -lh就可以以人性化的方式查看文件或者目录的相关信息

在这里插入图片描述

按照空隔来进行分隔,那么以上可以分为7

  1. 第1列:表示权限表达式。以上一个可以分为10位,表示文件或者目录的权限
    1. 第1位:文件类型,以上的案例表示我是目录是一个目录,所以为d
    2. 第2-4位:表示拥有者的权限是什么,以上案例表示root这个拥有者的权限为可读可写可执行( rwx = 7)
    3. 第5-7位:表示文件或者目录所在用户组的权限是什么,表示root用户组当中的成员对该目录拥有可读可执行权限
    4. 第8-10位:表示组外成员(其他人)的权限是什么,表示在root这个用户组以外的成员对该目录拥有可读可执行权限
  2. 第2列:表示linux文件被调用的次数(硬链接数),Centos当中硬连接数是不准确所以忽略
  3. 第3列:表示文件或者目录的拥有者是谁,在以上的案例中表达我是目录这个目录拥有者是root
  4. 第4列:表示文件或者目录的所属用户组是什么,在以上的案例中表达我是目录这个目录所在的用户组是root
  5. 第5列:表示文件或者目录的大小,不过在Centos中文件或者目录的大小是不准确的,有一定参考价值
  6. 第6列:表示文件或者目录的修改或者创建时间
  7. 第7列:表示文件或者目录的名称

拥有者,所属组,组内成员,其他人概念

在这里插入图片描述

拥有者,所属组,组内成员,其他人关系

在这里插入图片描述

chmod命令

修改文件或目录的权限

chmod 命令设定文件权限的方式有 2 种,分别可以使用数字或者符号来进行权限的变更

使用数字修改文件权限

Linux 系统中,文件的基本权限由 9 个字符组成,以 rwxrw-r-x 为例,我们可以使用数字来代表各个权限,各个权限与数字的对应关系如下

r --> 4
w --> 2
x --> 1

由于这 9 个字符分属 3 类用户,因此每种用户身份包含 3 个权限(r,w,x),通过将 3 个权限对应的数字累加,最终得到的值即可作为每种用户所具有的权限。

rwxrw-r-x来说,所有者、所属组和其他人分别对应的权限值为

所有者 = rwx = 4+2+1 = 7
所属组 = rw- = 4+2 = 6
其他人 = r-x = 4+1 = 5

所以,此权限对应的权限值就是 765

使用数字修改文件权限的 chmod 命令基本格式为

chmod [-R] 权限值 文件名

-R(注意是大写)选项表示连同子目录中的所有文件,也都修改设定的权限

使用字母修改文件权限

既然文件的基本权限就是 3 种用户身份(所有者、所属组和其他人)搭配 3 种权限(rwx),chmod 命令中用 ugo 分别代表 3 种身份,还用 a 表示全部的身份(all 的缩写)。另外,chmod 命令仍使用 rwx 分别表示读、写、执行权限

在这里插入图片描述

角色说明
uuser表示该文件的拥有者
ggroup表示用户组
oother表示其他人
aall表示所有用户
操作符说明
+增加权限
-撤销权限
=设置权限
权限说明
r可读
w可写
x可执行,假如是目录,表示可打开目录
-无任何权限

例如,如果我们要设定 .bashrc 文件的权限为 rwxr-xr-x

 chmod u=rwx,go=rx .bashr

举个例子,如果想要增加 .bashrc 文件的每种用户都可做写操作的权限

chmod a+w .bashrc

创作不易,感谢支持
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值