linux文件的权限

前言

在linux操作系统中,账户分为两类,一类是普通用户,一类是超级用户,普通用户在许多方面受权限约束,而超级用户几乎不受约束。

root账户和普通账户的切换

有三种方式能够切换账号

su

su 直接使用,会弹出password(一般只有password,后面不跟for用户名,那登陆的就是root账号),直接输入root账号密码,就可以成功登陆root帐号了。

su这个指令的登陆root账号只是将身份换了一下,所在的目录时不会变化的。

ctrl d返回登陆前的普通账户。

su 用户名

在su后面加上用户名可以指定普通用户,需要注意的是:

root账户切换到普通账户不需要输入密码,直接就可以切换。

普通账户切换到普通账户需要输入想要登陆的账户的密码。

su - 

su -直接使用,会弹出password(一般只有password,后面不跟for用户名,那登陆的就是root账号),直接输入root账号密码,就可以成功登陆root帐号了。

su -这个指令的登陆root账号会直接将目录切换到root账号的家目录。

ctrl d返回登陆前的普通账户。

sudo

sudo 指令/可执行文件 

sudo是一个一次性的,在执行这个指令或者文件时,拥有root的权限,第一次使用需要输入登陆时的普通账户的密码,之后的一段时间都不需要再次输入。

但是默认普通用户是无法使用sudo的,因为系统并不信任这个账户,需要将该用户的信息放到一个文件里面,才能使用sudo

/etc/sudoers

 这个文件只能用root账号打开

打开账号

找到allow开头的这一行。

复制一行

root    ALL=(ALL)       ALL

lyt   ALL=(ALL)       ALL
将root改成用户的用户名就行。

文件的属性 

文件的类型

一排就代表着一个文件的属性

圈出来的 部分是文件的类型。

d是目录文件  

-是普通文件

文件的权限

root账号并不被这些权限约束

用绿色的框框圈起来的表示的就是文件的权限。

权限分为三种:

r:可读权限

w:可写权限

x:可执行权限

-:没有对应的权限

rwx的位置都是固定的

这三种权限又被分为了三组:

第一组代表的是文件拥有者user所拥有的权限

第二组代表的是文件所属组group成员所拥有的权限

第三组代表其他账户other所拥有的权限

可读权限 

在目录文件和普通文件下,每种权限都会有些不一样

普通文件:

普通文件的可读权限可以让用户打开这个文件查看里面的内容

目录文件:

目录文件的可读权限可以查看这个目录文件下有哪些文件

可写权限

普通文件:

普通文件的可写权限可以让用户打开这个文件对里面的内容进行修改。

目录文件:

目录文件的可写权限可以让用户在该目录下创建和删除以及更改文件。

可执行权限

普通文件 :

普通文件的可执行权限可以让用户使用gcc等编译器对该文件进行编译

目录文件:
目录文件的可执行权限可以让用户进入该目录文件

文件的权限修改

文件的修改需要用到一个指令chmod 

格式 chomd 修改权限 目标文件

chmod修该权限有两种方法

例1:

chmod u+rwx,g+rwx,o+rwx 目标文件

chmod a+rwx 目标文件

u表示拥有者的权限,g表示所属组的权限,o表示其他人的权限。

+ 表示加上权限

- 表示减去权限

a 是all 一次性修改拥有者,所属组和其他人的权限。

例2:

chmod 777 目标文件

这三个数是八进制数

第一个数代表着拥有者的权限

第二个数代表着所属组的权限

第三个数代表着其他人的权限

将一个7的八进制数分解为二进制:

111

可以看到是三个二进制,刚好可以对应三个权限。第一个二进制是读权限,第二个二进制是写权限,第三个二进制数是执行权限,1表示的就是拥有对应的权限,也就是说,拥有者和所属组以及其他人的权限也可以这样对应,所有就可以用三个八进制数来控制对应的权限。

粘滞位

在linux当中,一个用户是不能到另一个用户的家目录里面去的,也无法看到里面的内容,因为每一个用户的家目录只对于该用户 有读写执行的权限。

如果想要用户之间进行交互,可以在根目录建立一个任何人都有读写执行权限的共享目录。

但由于该目录所有人都有读写执行的权限,所以任何人都可以删除其他人建立的文件,因为文件的删除权限不由该文件决定,而是由该文件所在的目录决定。

这个时候就可以对这个目录文件加上粘滞位,粘滞位只能加在目录上。

 

用chmod指令给该文件的other加上了粘滞位,粘滞位是一种特殊的可执行权限,可以让该目录文件下的文件只能被自己的拥有者所删除。 

文件拥有者与所属组的更改的更改

 更改文件拥有者和所属组需要用到root权限和chown指令

格式:

chown 新拥有者:新所属组 目标文件

文件的初始权限

普通文件默认权限:664

目录文件默认权限:775

实际上这并非这两种文件最开始的权限,文件权限会被umask(权限掩码)处理

 直接输入umask就可以看到这样的一串八进制的数,第一个0是表明这个数是一个八进制数,后面的三个数分别对应着,user权限,group权限,other权限。创建文件时,在umask当中出现的权限会被去掉,所以普通文件和目录文件最开始的权限应该是:666 和 777.

umask是通过一个运算将对应权限取消的

最终权限 = 初始权限&(~umask)~是取反

最终权限是初始权限和umask这两个八进制数转换成二进制数,再将umask按位取反,两个数&之后的结果

例:

666展开为二进制

110110110

002展开为二进制

000000010

取反

111111101

&:

110110110&

111111101=

110110100.

将110110100转为8进制:

664

修改umask

umask 0三个八进制数字

例:

umask 0484 

 文件名的后缀

在linux操作系统中,并不在乎文件的后缀名,因为文件的类型和权限跟后缀名无关,分辨文件靠文件开头的字符,权限也由权限属性显示。

虽然linux操作系统并不在乎文件的后缀名,但是搭载在linux操作系统上gcc这样的编译器是在乎的,用gcc编译一个文件,即便该文件有对应的可执行程序,但没有.c作为后缀,就是无法对该文件进行编译。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/58552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CSS3】css开篇基础(5)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

net framework 3.5组件更新失败错误代码0x80072f8f怎样解决

浏览器地址栏输入www.dnz9.com远程解决netframework问题 当遇到.NET Framework 3.5 组件更新失败,错误代码为 0x80072f8f 时,可以尝试以下几种解决方法: 一、检查网络连接和时间设置 网络连接 错误代码 0x80072f8f 通常与网络相关问题有关。首…

STM32F103C8T6学习笔记2--LED流水灯与蜂鸣器

1、简要说明与电路图 LED灯与蜂鸣器都是GPIO的输出操作,给高低电平实现。GPIO操作也是后续操作的基础,没有什么难度,记不住寄存器没关系,只要把流程理清楚就可以了。 端口配置成推挽输出模式,高低电平均有驱动能力。 …

计算机网络网络层笔记

互联网提供的两种服务 1.虚电路服务 2.数据报服务 需要记住的是现在只用第二种也就是数据报服务 网际协议IP 物理层的中断系统:转发器(hub) 链路层的中断系统:交换机 网络层的中断系统:路由器 网络层以上:网关 如上图所示,网关是用来访问其他的网段的一个接口,网关的地…

大屏可视化:舞动数据与美观的“设计秘籍”

大屏可视化鉴赏:踏入软件系统产品设计之旅,让我们一同鉴赏那些闪耀在智慧农业、智慧园区、智慧社区及智慧港口等领域的大屏可视化杰作。每一帧画面,都是科技与创新的完美融合,数据跃然屏上,智慧触手可及。 >> 数…

持续基础怎么搞?Jenkins+Docker+Git实战

在如今的互联网时代,随着软件开发复杂度的不断提高,软件开发和发布管理也越来越重要。目前已经形成一套标准的流程,最重要的组成部分就是持续集成(Continuous Integration,CI)及持续部署、交付(…

EDA --软件开发之路

之前一直在一家做数据处理的公司,从事c开发,公司业务稳定,项目有忙有闲,时而看下c,数据库,linux相关书籍,后面跳槽到了家eda公司,开始了一段eda开发之路。 eda 是 electric design …

「Mac畅玩鸿蒙与硬件10」鸿蒙开发环境配置篇10 - 项目实战:计数器应用

本篇将通过一个简单的计数器应用,带你体验鸿蒙开发环境的实际操作流程。本项目主要练习组件的使用、事件响应和状态管理,帮助开发者熟悉基本的应用构建流程。 关键词 计数器应用组件操作事件响应状态管理HarmonyOS 应用开发一、创建计数器项目 1.1 在 DevEco Studio 中新建项…

window快捷键:window + v 打开剪切板历史记录 / 非常实用

一、剪切板历史记录功能介绍 1.1、window v 打开剪切板历史记录 / 文字、图片都可记录 1.2、window v 最近使用 1.3、window v 表情符号 1.4、window v GIF 1.5、window v 颜文字 1.6、window v 符号 二、欢迎交流指正

寻找专业在线微信投票和点赞服务团队攻略

在当今的社交网络时代,微信投票和点赞活动日益频繁,无论是企业评选、才艺比赛还是个人荣誉的角逐,都可能需要一定的投票和点赞支持。然而,要找到领先、高效、专业的在线微信投票和点赞服务团队并非易事。以下是一些关键步骤和注意…

115页PPT华为管理变革:制度创新与文化塑造的核心实践

集成供应链(ISC)体系 集成供应链(ISC)体系是英文Integrated Supply Chain的缩写,是一种先进的管理思想,它指的是由相互间提供原材料、零部件、产品和服务的供应商、合作商、制造商、分销商、零售商、顾客等…

Games101 05~06 - Raterization 光栅化

1.Viewport Transformation视口变换: 1.1Canonical Cube 之前我们通过MVP矩阵把物体坐标变换到正方体中(每个顶点的x,y,z坐标都应该在-1.0到1.0之间)也被称为裁剪空间clip space,接下来我们需要将该空间映…

为Meta Spark准备3D模型

有许多工具可以帮助你为 Meta Spark Studio 创建 3D 对象,包括 Cinema4D、Blender 和 3ds Max。你还可以使用 Meta Spark Toolkit 优化 Blender 对象。 在本指南中,我们将介绍正确的设置,以便你可以成功地为 Meta Spark Studio 准备对象&…

shodan7,shodan参数使用,常用端口,Google语法

参数使用 alert shodan alert -h(查看帮助文档 这个就是怎么去配置ip监控)我们能在web页面上面去做,而且更加方便,所以就不多讲了 info shodan info(查看你查询的扫描的一些次数每个账户都是每个月有限制次数的)domain shodan domain(查询域名信息…

MATLAB/Simulink学习|在Simulink中调用C语言-04使用C Function 实现PI运算(使用模块自定义代码-仿真自定义代码)

在上一篇博客中,介绍了如何使用C Function 实现PI运算,但是在模块内编辑C代码,而不能直接调用已经写好了的C代码。 在Simulink中使用C Function调用自定义代码有两种方法,本篇博客介绍其中一种方法。 添加头文件和源文件 在实际…

博图V19的DB块,批量导入组态王

最近在使用组态王做一个厂区的DCS项目,plc选用西门子1500系列。一共用了3个1500,5个io站点。整个项目下来,点位大约有5000多个。把这5000多个点位,一个一个导入到组态王,无疑是一个非常非常非常难受的工作,…

Kafka相关API开发

(一)引入依赖 用API直接去操作kafka(读写数据)在实际开发中用的并不多,学习它主要还是为了加深对Kafka功能的理解。kafka的读写操作,实际开发中,是通过各类更上层的组件去实现。而这些组件在读写kafka数据时,用的当然是kafka的jav…

linux离线安装Ollama并完成大模型配置(无网络)

这篇文章主要分享两方面内容: 1)在纯内网环境下如何部署ollama 2)在纯内网环境下如何配置大模型 话不多说直接开始。 ①离线部署ollama 一、通过浏览器访问ollama官方安装脚本,获取脚本内容。复制里面的内容。 在Linux中执行…

Centos安装配置Jenkins

下载安装 注意:推荐的LTS版本对部分插件不适配,直接用最新的版本,jenkins还需要用到git和maven,服务器上已经安装,可查看参考文档[1]、[2],本次不再演示 访问开始使用 Jenkins 下载jenkins 上传至服务器…

【java数据结构】二叉树

【java数据结构】二叉树 一、 认识二叉树1.1 二叉树的概念1.2 二叉树的特性:1.3 两种特殊的二叉树:1.4 二叉树的性质:1.5 二叉树的存储: 二、 实现二叉树2.1 二叉树节点的定义:2.2 二叉树的基本操作:获取树…