专栏首页嵌入式大杂烩【Linux笔记】文件的权限

【Linux笔记】文件的权限

Linux是多用户操作系统,不同的用户对于文件的操作拥有不同的权限。我们可以使用 ls -l 命令列出当前目录下的文件及目录的详细信息:

我们重点看前10个字符,如hello文件详细信息中的前10个字符为 -rw-rw-rw- 。这10个字符的说明为:

其中,第一个字符表示这个对象的类型,如:

为 d 则是目录
为 - 则是文件;
为 l 则是链接文档(link file);
为 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
为 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

后面的9个字符,每3个字符为一组,且为 『rwx』的组合,且权限的顺序是固定的。其中r代表读权限,w代表写权限,x代表执行权限,若没有哪一个权限,则用- 替代相应的位置。

第2-4个字符确定属主(该文件的所有者)拥有该文件的权限。第5-7个字符确定属组(所有者的同组用户)拥有该文件的权限。第8-10个字符确定其他用户拥有该文件的权限。

所以以上的hello的前10个字符-rw-rw-rw-代表的意思为:hello是个文件;hello的属主具有读、写权限,没有执行权限;hello的属组具有读、写权限,没有执行权限;其他用户组对与hello文件有读、写权限,没有执行权限。

1、更改权限

权限是可以更改的,我们可以使用 chmod (change mode) 命令来改变文件或目录的访问权限。有两种表示方式,一种是使用符号的方式,另一种是使用数字的方式。

Linux文件的基本权限就有九个,分别是user/group/others三种身份各有自己的read/write/execute权限。

(1)使用符号改变文件权限

格式为:chmod [身份] [+、-、=] [r、w、x] [文件或目录]

其中,使用u、g、o三种用户身份,除此,还可以使用a表示所有身份。符号+表示增加权限,符号 - 表示删除权限,符号=表示指定权限。如:

我们的hello文件是由hello.c编译生成的可执行文件,但是当前用户身份并没有可执行权限,因此运行该文件是出现“权限不够”的警告。我们可以使用命令:

chmod u+x hello

来增加当前用户对hello文件的执行权限。结果如下:

(2)使用数字改变文件权限

除了使用符号来表示权限,还可以使用数字来表示文件或目录权限。其中:

r:用数字 4 表示
w:用数字 2 表示
x:用数字 1 表示

每个身份的权限都是这三个数字相加,如当前hello文件的权限为 -rwxrw-rw- ,那么就是:

u=rwx=4+2+1=7
g=rw-=4+2+0=6
o=rwx=4+2+0=6

使用数字的方式改变文件或目录属性的命令格式为:

chmod ugo [文件或目录]

这里的 ugo 就是我们每一身份权限的数字表示。

例如:当我们要把hello文件所有身份的权限都改为可读、可写、可执行时,可以执行以下命令:

chmod 777 hello

2、更改文件所有者与所属组

文件的所有者与所属组是可以更改的,使用的命令分别是chown(change owner)、chgrp(change group)。格式为:

更改所有者:chown [参数选项] [文件]
更改所属组:chgrp [参数选项] [文件]

例如:把hello文件的所有者与所属组都改为 win

以上命令就是关于文件权限的一点笔记,如有错误,欢迎指出。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【RT-Thread笔记】RT-Thread启动过程

    我们学习编程,特别是嵌入式编程,不仅仅要多写代码进行练习,还要多看看一些例程。最近在学习RT-Thread,原子的某例程的的主函数如下(这是在keil5下的截图...

    正念君
  • 【DSP笔记】TI官方例程中切换RAM、FLASH工程版本的方法

    我们用Visual Studio来开发程序时,可以选择编译Debug版本,也可以选择编译Release版本。Debug版本为调试版本,Release版本为对外发...

    正念君
  • 【C语言笔记】变参函数

    提到变参函数,我们的感觉是不是既熟悉又陌生?感觉熟悉是因为我们平时都在使用着,如我们常使用的printf()函数与scanf()函数就是典型的变参函数。因为pr...

    正念君
  • OpenDaylight系列文章(三):OpenDaylight初窥(中篇)之OpenDaylight的系统架构

    如果说前面的文章是铺垫的“地毯”,那么从本篇开始OpenDaylight就算是正式踩着地毯走来了。在本篇文章中将会给大家简要介绍一下OpenDaylight的系...

    SDNLAB
  • golang中big包源码阅读——从RSA算法说起

    RSA加密算法属于非对称加密算法,属于网络的基础安全算法。阮一峰的博文:RSA算法原理(一)和RSA算法原理(二),非常通俗易懂。在这里简单的归纳总结一下,整个...

    李海彬
  • Windows 7下获取System权限

    公司推 Win7 了,作为 IT 部门,铁定是先行测试的小白鼠。于是先给我们安装了 Win7 工作环境。一直以来,除了服务器,普通办公 PC 的管理员都是被桌面...

    张戈
  • 约束优化(Constrained optimization)

    约束优化(Constrained Optimization),即约束优化问题,是优化问题的分支。它是在一系列约束条件下,寻找一组参数值,使某个或某一组函数的目标...

    easyAI
  • 深度高能粒子对撞追踪:Kaggle TrackML粒子追踪挑战赛亚军访谈

    AI 科技评论按: Kaggle TravML 粒子追踪挑战赛的颁奖仪式即将在 NIPS 2018 大会上进行。这个比赛不仅是机器学习助力其它领域科学研究的经...

    AI科技评论
  • 如何在R中创建日历热图

    首先,我们运行Paul Bleicher创建的calendarHeat函数以显示日历热图。 其次,我们创建一些随机的时间序列数据。 最后,我们在两个调色板中绘制...

    用户1359560
  • 从感知机到神经网络简略

    最热门的深度学习,想必很多人都想了解学习,网络上也有不少资料;小编也希望可以从头开始,更为透彻地去理解原理机制,这样在日后可以在深度学习框架实战的学习上更为轻松...

    智能算法

扫码关注云+社区

领取腾讯云代金券