【Linux】文件权限_linux 文件权限-程序员宅基地

技术标签: Linux  运维  Powered by 金山文档  linux  服务器  

本期我们来谈谈Linux上的权限:

一、权限的概念

在生活中我们处处都会遇到权限。权限是什么呢?

下面是对于权限的定义:

权限:一件事是否允许被“谁”做

简化一下就是:权限=人+事物属性

举个栗子:

非爱奇艺vip用户观看不了爱奇艺vip内容(这是用户不具备一定条件,属于“人”)

在爱奇艺app中我们不可以写代码(这是爱奇艺app不具备写代码的功能,属于“事物属 性”)

二、Linux上的用户分类

在Linux上的用户就属于“人”这个属性。

而Linux上的用户分为两大类:

root:root用户相当于Linux系统里的超级管理员,几乎可以干任何事情。

普通用户:普通用户则有很大的限制,例如不能修改系统关键配置文件,想查看其他用户的文件需要相应的权限,不能安装软件,甚至关机关机指令都需要以root身份执行。

三、Linux上文件的角色划分

Linux 中将文件的身份分为三个类别,分别是文件拥有者(owner)所属组(group)其他人(others),每个文件都可单独地对不同的身份执行不同的权限。

拥有者(owner):即文件的拥有者,文件拥有者可以对自己的文件设置权限,允许或者拒绝某些用户的访问。

所属组(group):所属组是一个组别,在同一组的用户都可以对在同一个组的文件进行访问,用户组在进行团队协作的时候会非常有用。当执行协作任务的时候,某些文件可能需要让多个用户进行共用,此时需要设置用户组的相应权限,以确保在用户组中的所有用户都有权限去访问对应的文件。

其他人(other):其他人就可以根据字面意思来理解。对于一个文件,如果该用户并不是文件的拥有者,又被排除在用户组之外,那么这个用户就被赋予了其他人的身份,因此不会享有用户拥有者和用户组成员的待遇。如果想要访问某个文件,则需要等待该文件针对其他人的权限被设置之后才能够进行访问。

四、普通用户和root(超级用户)之间的切换

我们使用普通用户登录时,有时因为权限原因需要root的身份,我们可以使用su指令来快速进行普通用户和root之间的切换:

4.1 su

在我们输入su指令之后,需要输入root账号的密码(密码不进行屏显),在输入完密码过后我们直接切换成了root的身份,但是可以注意到我们所在的当前路径并没有发生变化

想要回到普通用户直接ctrl+D

4.2 su -

在su指令后加一个-,同样进行普通用户和root之间的切换,但是可以注意到我们所在的当前路径发生了变化(直接切换到家目录,相当于以root身份重新登陆):

想要回到普通用户直接ctrl+D

4.3 su 用户名

在su指令后加上用户名是可以切换普通用户之间的切换(在普通用户身份下需要密码):

但是在root身份下就不需要密码了:

五、Linux的文件属性

在Linux上“事物”相对应的是文件,而“事物属性”在Linux上就是文件的一系列属性。

Linux的文件属性可以有:执行

在深入了解文件属性之前,我们需要详细谈谈文件类型和文件限权:

现在我们来查看一下当前路径下的文件:

发现除了文件名还有其他一些奇奇怪怪的东西

那么这些到底代表当前文件什么属性呢?请看下图:

对于开头的十个字符我们拿下来慢慢说:

开头十个字符的第一个字符表示的是文件类型在Linux下不用文件后缀来区分文件类型而是用文件属性中第一列的第一个字符来区分文件类型

下面对于开头十个字符的不同的第一个字符进行了介绍:

-

表示普通文件,例如文本文件、可执行文件、归档文件(压缩包)等等

d

表示目录

b(block)

表示块设备,例如磁盘

c

表示字符设备,即键盘或者显示器

p

表示管道文件

s

表示网络socket文件

Linux操作系统既然不以文件后缀来区分文件类型那我们该如何去看待Linux环境下文件名后缀呢?

自己想用就用,可以给别人看(有些指令不是以Linux环境来运行的,有时候需要文件名,例如gcc)

可以将后缀当做文件名的一部分

剩下的九个字符我们平均分成三组来看:

第二个到第四个字符表示的是拥有者的权限

第五个到第七个字符表示的是所属组的权限

第八个到第十个字符表示的是其他人(other)的权限

每组三个字符对应位置的含义是不变的:第一个字符代表是否可读,第二个字符表示是否可写,第三个字符表示是否可执行。

下面对于每个不同的字符进行了介绍:

r

表示拥有可读权限

x

表示拥有可执行权限

w

表示拥有可写权限

-

表示对应位置上没有权限

六、修改文件权限

如果我是文件拥有者,那要怎么对文件的权限进行修改呢?

可以使用chmod指令来进行操作:

6.1 chmod u

chomd 后面加u表示对文件的拥有者的权限进行修改

具体操作为:chmod u+想要添加的权限 要修改文件权限的文件名 或者chmod u-想要减少的权限 要修改文件权限的文件名

来看一下具体实例:

将test.c文件的拥有者增加可执行限权:

将test.c文件的拥有者减少可读和可写限权:

6.2 chmod g

chomd 后面加g表示对文件的所属组的权限进行修改

具体操作为:chmod u+想要添加的权限 要修改文件权限的文件名 或者chmod u-想要减少的权限 要修改文件权限的文件名

来看一下具体实例:

将test.c文件的所属组增加可执行限权:

将test.c文件的所属组减少可执行限权:

6.3 chmod o

chomd 后面加o表示对文件的其他人的权限进行修改

具体操作为:chmod u+想要添加的权限 要修改文件权限的文件名 或者chmod u-想要减少的权限 要修改文件权限的文件名

来看一下具体实例:

将test.c文件的其他人增加可写和可执行限权:

将test.c文件的其他人减少可读可写可执行权限:

6.4 chmod u,g,o

我们还可以对文件的拥有者、所属组和其他人的限权一起进行进行操作:

直接上操作:

6.5 chmod a

chomd 后面加a可以对文件的拥有者、所属组和其他人的某权限一起进行修改

具体操作为:chmod a+想要添加的权限 要修改文件权限的文件名 或者chmod a-想要减少的权限 要修改文件权限的文件名

将test.c文件的拥有者、所属组和其他人减少可写权限:

6.6 chmod 八进制方案

我们将文件的每一组三个字符是否拥有权限用0(无)和1(有)来表示:

例如

该test.c文件的每组的限权可以表示为:101 001 001

将每组的三位数(二进制)转换成八进制可以表示为:511

这样我们就可以使用3个八进制数来表示文件的拥有者、所属组和其他人的权限

具体操作为:chmod 八进制方案 要修改文件权限的文件名

例如:

七、修改文件的拥有者和所属组

7.1 chown

我们一般使用chown指令来修改文件的拥有者

具体操作为:chown 想要修改的拥有者 要修改文件拥有者的文件名

现在我们来试试:

发现虽然我们是文件的拥有者,但要修改文件的拥有者是没有限权的(就像我们生活中将自己的物品赠与他人时,也需要得到他人的同意)

对于这种情况我们应该怎么办呢?

使用root身份强制修改!

这样就可以完成对文件拥有者的修改了

7.2 chgrp

我们一般使用chgrp指令来修改文件的所属组

具体操作为:chgrp 想要修改的所属组 要修改文件所属组的文件名

现在我们来试试:

发现我们并没有权限,这时我们还得用root身份来进行对文件所属组的修改

7.3 使用chown指令来同时修改文件的拥有者和所属组

我们还可以使用chown指令来同时修改文件的拥有者和所属组(需要root身份

具体操作为:chown 想要修改的拥有者:想要修改的所属组 要修改文件拥有者和所属组的文件名

我们下面拿root身份来实验一下:

此时文件的拥有者和所属组同时被修改为LHS和CC

八、file

在Linux环境下我们可以使用file指令来查看文件的属性

具体操作为:file 想要查看文件的文件名

下面来举例:

现在向test.c文件里写点内容:

现在再使用file指令来查看显示的就是文本文件了。

向test.c文件里写点代码:

现在使用file指令来查看显示的就是C源文件了。

现在我们编译一下:

最后使用file指令来查看a.out就是可执行文件了。


本期博客到这里又要大家说再见了。

在这里给大家拜个晚年,祝各位兔年大吉,一帆风顺,这一年一起努力加油呀!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_70811813/article/details/128748754

智能推荐

中断异常的分析思路_sensor采集中断-程序员宅基地

文章浏览阅读517次。工作学习中经常遇到中断相关的issue,我一般会从 中断源 (ic)-- 驱动层 -- SDK 逐层分析。往往解决的比较快。举一个例子,下面给出分析过程。问题描述: 开机过程中指纹driver有大量异常中断触发log 问题分析: 首先,我们要确定的是,这些异常中断是怎么来的。有以下三种case。 1.软件误报2.cpu主动发出的信号3.指纹sensor发出的信号 针对软件误报,只需要 cat ..._sensor采集中断

斧子的HTML5输出是什么,CF斧有什么使用技巧 斧子使用经验分享【详解】-程序员宅基地

文章浏览阅读82次。很多人知道斧子很牛,但就是用不好,所以好多人练了一段时间就放弃了,其实斧子练习有一些问题是需要注意的,下面就结合一下我个人练习斧子的经验,和大家分享一下,希望能对大家的练习提供一些帮助。1.拿起斧子要有信心和决心因为斧子有无视头盔的特点,所以面对其他武器,不应该有任何畏惧的心理(当然不能傻傻的向前冲然后白白送死),就像阿卡选手一样,要有一击毙命的信心和决心,因为在刀战战场上,心态很重要。有一个好的...

nginx配合fastdfs使用-----python上传测试_fastdfs python 上传-程序员宅基地

文章浏览阅读176次。开始前需要先准备好fdfs的环境https://blog.csdn.net/weixin_44834666/article/details/105686059一、安装py3Fdfs包pip install py3Fdfs二、编辑py文件from fdfs_client.client import Fdfs_client, get_tracker_conf# 创建客户端 client...._fastdfs python 上传

plsql创建用户,创建表空间以及删除用户,删除表空间_plsql删除创建的用户-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏5次。1.创建表空间create tablespace [表空间名:例如{newszgcp}]datafile [表空间所在地址:例如{'D:/StudySoft/OrServer/admin/orcl/newszgcp'}]size [表空间大小:100M ]autoextend on next [扩展:50M ] maxsize unlimited; 2.创建用户create..._plsql删除创建的用户

Java SE GUI编程_p.add(new textfield(10))含义-程序员宅基地

文章浏览阅读169次。GUI编程_p.add(new textfield(10))含义

Codeforces 1119B 贪心二分_codeforces - 1119b-程序员宅基地

文章浏览阅读191次。https://codeforces.com/contest/1119/problem/B不改变原数组的值,复制一份,要求1-k连续,则1-mid区间内判断子数组从大到小排序后,每两个相差不大,比较均匀 i+=2倒着的目的是前大后小 能装前一定能装后 尽量装更多的 累积高度和跳着累积高度和,如果<=h 可增加更多的瓶子,否则高度太多瓶子太多,减小瓶子数量const int maxn..._codeforces - 1119b

随便推点

用matlab画三相桥式,matlab三相桥式电路仿真.doc-程序员宅基地

文章浏览阅读572次。matlab三相桥式电路仿真.doc 五邑大学 电 力电子技术 课程 设计报告 题 目: 三相桥式整流电路的 MATLAB 仿真 院 系 信息工程学院 专 业 自动化 班 级 140705 学 号 3114001891 学生姓名 杨煜基 指导教师 张建民 电力电子技术课程设计报告 2 三相桥式整流电路的MATLAB 仿真 一、 题目的要求和意义 整流电路是电力电子电路中出现最早的一种,它的作用是将..._三相全桥电路怎么在matlad画出

vscode浏览器怎么打开php,vscode怎么选择浏览器-程序员宅基地

文章浏览阅读2.4k次。vscode怎么选择浏览器?vscode如何右键选择浏览器运行html文件?我们利用Vscode软件编写html的时候,一般都想右键选择html文件,然后直接选择浏览器运行,但是默认是没有的。相关文章教程推荐:vscode教程下面小编给大家分享一下如何设置。首先我们新建一个html文件,你可以用记事本编写一个,如下图所示接着将html文件导入到VsCode软件中,如下图所示我们直接在html文件中..._vscode运行php代码用特定浏览器

phpexcel导出大量数据合并单元格_【PHP】通过PHPExcel导出比较复杂的表格-程序员宅基地

文章浏览阅读591次。[PHP] 纯文本查看 复制代码/*** excel文件导出** [url=home.php?mod=space&uid=952169]@Param[/url] array $data 需要生成excel文件的数组* $data = [* [NULL, 2010, 2011, 2012],//列名* ..._phpexcel 导出复杂表格

马哥运维学习作业(九)-程序员宅基地

文章浏览阅读110次。1、详细描述一次加密通讯的过程,结合图示最佳。2、描述创建私有CA的过程,以及为客户端发来的证书请求进行办法证书。以下操作使用的2台服务器完成:服务器主机名IPCA服务器ca192.168.2.30httpd服务器httpd192.168.2.80在CA服务器上操作:创建所需要的文件[root@ca~]#cd/etc/pki/CA/#..._主进程负责生成n个子进程

iOS AFNetworking上传图片到服务器_afnetworking multipartfile-程序员宅基地

文章浏览阅读828次。AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManagermanager]; manager.requestSerializer = [AFHTTPRequestSerializerserializer]; manager.responseSerializer = [AFHTTP_afnetworking multipartfile

一个C语言程序是由( d)构成,自考“C语言程序设计”模拟试题八-程序员宅基地

文章浏览阅读562次。自考“C语言程序设计”模拟试题八一、选择题1.一个C语言程序是由( )构成。A.语句 B.行号 C.数据 D.函数2.下面标识符中正确的是( )。A.a#bc B.123ABC C.sime D.Y·M·D3.在C语言中,存储一个整型、字符型、双精度实型变量所需的字节数..._6*4/7 +7%3

推荐文章

热门文章

相关标签