【Linux】权限管理

文章目录

什么是权限

在生活中总有许多视频软件,这些视频软件可以看电影诸如此类,但是有些电影需要Vip才可以观看,在一些音乐软件上,一些音乐只有Vip才能听,这就是因为权限的不足,换句话来说,权限就是权利在规则上的一些限制,权利并不是无限的,普通用户在平台上一样有着观看电影和听音乐的权利,但是没有观看Vip电影和听Vip音乐的权利,这就是权利的限制,权限;

Linux系统对于文件权限的管控十分的严格,用户如果需要对某个文件进行相应的操作,就必须拥有对该文件的对应的权限

从这里可以看出:
在Linux中权限是伴生文件的

在Linux中共有两种用户

  • 普通用户
  • 超级用户(root用户)

Linux权限管理

在Linux中应该以两个角度对权限进行分析,一个是访问者的权限,一个是原本文件具有的属性,为了方便理解可以简称为**"人"与**"事物属性"

在Linux中,使用指令**"ll"** 或者指令 "**ls -l"**就能看到当前文件所对应的信息;

在Linux中,文件等于内容+属性 ,而该处使用指令所展示出的内容即为文件的属性;


文件访问者的分类(人)

文件访问者的分类共有三种 ,分别为拥有者(u)、所属组(g)以及其他人(o);
文件访问者的分类 拥有者u 所属组g other

以该形式对文件的权限进行分类将更加有效的保证文件的安全性;

从上图可以表示一个文件对应的拥有者以及所属组(拥有者与所属组可以穷举);

但是这里出现了一个问题,拥有者即为该文件的拥有者,other指的是除了拥有者和所属组以外的其他访问者,那既然如此,所属组指的又是谁?为何Linux在设计角色划分时为何要带一个所属组?

这里的答案其实很明确,就是为了方便对权限的分配,举个例子,我是一个小组的组长,我的小组内共有50个组员,为了方便权限分配,是一个一个为组员进行权限分配 更为方便还是将所有组员放置一个小组内并将整个小组进行授权 会更为方便;

答案很明确,当然是后者,所以才会有着所属组的角色分配;
用户组即为一批用户的集合 而所属组即为一批已经被进行权限分配的用户的集合

一个组内可以有很多人,在命名时应用组长的名字对组进行命名(在特殊情况下,一个组内可以是只有一个人);


文件类型和访问权限(事物属性)

一个文件最基本的属性是,能被读取( r ),可以被写入( w ),也可以被执行( x );但权限之所以是权限,说明该处的权限不止只与文件能否被读写执行有着全部的关系;

从图中可知文件的属性包含了文件的权限属性、连接数、文件的拥有者、所属组、文件大小、修改日期以及文件名。


文件的权限属性

从上文可知,"一个文件最基本的属性是,能被读取( r ),可以被写入( w ),也可以被执行( x )",但是从图中却可以看到不同的r w x ;再仔细看时发现其实除了第一个" - "以外其余的都可以三三为一组;

这里先抛开最前面的" - "符号,除了该符号以外后面的九个其实正好对应了三种访问者的权限,从左到右分别为拥有者( u )、所属组( g )、othere( o );

若是权限所在位置为" - "则表示该访问者不拥有该权限;

否则拥有该权限可以进行相应操作;

文件权限属性的修改

同时,作为root用户,可以对文件的访问权限属性进行修改;

通过

复制代码
chmod x+rwx filename

指令可对文件的访问权限做相对应的修改;

以该处为例使用了chomd权限修改了拥有者,所属组以及other的所有权限;(普通用户的情况可以使用sudo提权进行操作);

格式:chmod [参数] 权限 文件名 常用选项 :R (递归修改目录文件)


用户表示符+/-=权限字符:
-+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限

用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户


文件后缀类型

在我们平时使用的Windows系统中,文件有许多类型,例如txt、exe、zip等等

在Linux中也同样拥有文件类型,但是Linux中的文件类型与平时所使用Windows中文件类型并不相同 ,换句话说,Linux内文件的运行并不与文件的后缀类型相关


但是为什么再在此处对test.txt文件使用gcc进行编译时会报错? 原因是,我们提到"Linux中的文件类型与平时所使用Windows中文件类型并不相同",但是在Linux中,gcc是作为一个软件而存在,在Linux中运行文件并不会因为文件的后缀类型而受到限制,但是文件会因为软件的类型检查而被不能运行;

举个例子,现在有一个test.c的文件,文件内容如下:

c 复制代码
#include<stdio.h>
int main()
{
	printf("HelloLinux\n");
	return 0;
}

现在使用gcc对该文件进行编译,并将编译后的a.out文件重新命名为zzz,并执行该文件;

从该处可知,在Linux中,文件的运行与后缀类型无关;


Linux中文件的类型

从上文可知,在Linux中文件的运行与后缀类型无关,那Linux是如何分别不同的文件的?或者说,Linux是如何对文件进行分类的?

有一句话叫做"Linux中万物接文件",这句话如字面意思相同,在Linux系统中,所有一切都可以看作是文件;而使用指令**"ll"** 或者指令 "**ls -l"**就能看到当前文件所对应的信息,包括这个文件的类型;

如图所示,红色区域即为Linux中的文件类型;

在Linux中,共有七种文件类型:
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件


相关推荐
咖丨喱42 分钟前
【Action帧简要分析】
服务器·数据库·asp.net
三体世界1 小时前
TCP传输控制层协议深入理解
linux·服务器·开发语言·网络·c++·网络协议·tcp/ip
LuDvei1 小时前
CH9121T电路及配置详解
服务器·嵌入式硬件·物联网·网络协议·tcp/ip·网络安全·信号处理
zkmall1 小时前
企业电商平台搭建:ZKmall开源商城服务器部署与容灾方案
运维·服务器·开源
泷羽Sec-静安1 小时前
OSCP官方靶场-Solstice WP
服务器·网络·数据库
华不完1 小时前
下一代防火墙混合模式部署
运维·服务器·网络
tomcsdn311 小时前
SMTPman,smtp的端口号是多少全面解析配置
服务器·开发语言·php·smtp·邮件营销·域名邮箱·邮件服务器
x县豆瓣酱1 小时前
ubuntu server配置静态IP
linux·运维·ubuntu
工藤新一¹1 小时前
Linux
linux·运维·服务器