首页 > 嵌入式软件 > linux

“一切皆是文件”是Unix/Linux的基本哲学之一,目录、字符设备、块设备、套接字等在Unix/Linux都是以文件的形式存在。面对众多的文件,如何理解和管理他们的读、写、执行权限呢?

本文引用地址: http://www.21ic.com/embed/software/linuxos/201806/66890.html

在Windows下,可以通过鼠标右击文件,在属性栏查看文件的权限。Linux下的文件“哲学”是否与Windows相同呢?我们从以下几点分析。

1 . 文件权限设定的作用

文件权限的设定是为了保护系统及用户数据的安全性。对于用户来说,最重要的事情就是数据、文件的私密性及安全性。从系统管理员到普通用户,从文件属性到文件特殊加密 ,无不围绕着一个主题:权限管理。若一个关键文件被意外写入,轻则数据丢失,重则系统崩溃。

以根目录下的/proc目录文件为例,该文件是linux内核提供的一种虚拟文件系统,可访问内核内部数据结构、改变内核设置的机制。其中swaps 为交换空间的使用情况,tty 保存tty设备信息,version Linux内核版本和gcc版本。我们可以发现,这些与系统紧密关联的文件全部为只读,即使对于root用户。

 

图1 /proc下的部分文件

 

图1 /proc下的部分文件

2 . 文件权限的划分

Linux下的权限管理从访问者方面来看大致可分为三块,分别是用户、用户组、管理员。如图2,打开当前用户目录下的文件列表细节。大部分时候我们使用此命令仅仅是关注右半部分的信息,比如文件名、日期、大小等。左半部分展现的就是对应文件的权限信息了。

 

图1 /proc下的部分文件

 

图2 文件属性细节

Linux系统对用户的权限有着严格的管理。如图3,可将一个文件的权限分为三部分:对文件所有者权限、对所有者所在用户组权限、对其他用户权限。其中,用户组(group)就是具有相同特征的用户的集合体。

 

图3文件权限

 

图3文件权限

用户和用户组的信息分别在/etc目录下的passwd、group文件内,可以使用cat命令直接读取。

 

4.png

 

图4用户/用户组信息

3 . 文件权限更改方法

Linux提供chmod命令用于改变或者设置文件的权限。命令格式如图5,将hello 文件的其它用户权限可执行属性去掉:vmuser@Linux-host: hello$ chmod o-x hello。如果同时设置 u/g/o,可用 a 表示,例如为 hello 增加全部用户可执行权限:vmuser@Linux-host: ~$ chmoda+x hello。

 

5.png

 

图5文件权限更改(一)

前面我们说到,linux的文件权限管理是一种“哲学美”,chmod命令还提供更间接的使用方式。如图6,分别将r、w、x对应为数字4、2、1,用数字之和代表该组权限值,比如rwx可用 7 表示, r-x 可用 5 表示。若想将hello文件设置为最宽松的权限,可直接使用命令chmod 777 hello。

 

6.png

 

图6文件权限更改(二)

那么除了先创建文件再修改权限,是否可直接创建特定权限的文件呢?答案是肯定的,我们可以通过修改umask的值管理对应用户默认权限。可以直接输入umask获取当前用户的权限默认值,当然也可以使用umask=xxx去修改它。此外,若想永久设置umask的值,可以修改~/.bashrc或者./bash_profile。Umask的值与文件的权限并不是一一对应的,感兴趣到的读者可以查阅相关资料。

 

7.png

 

图7 用户默认权限更改

4 . 如何保护重要文件

文件的保护可以从量方面入手:文件的权限管理、文件及时备份。

权限管理方面,在更改文件权限时不可随意,比如直接chmod 777 filename。以系统或APP的工作日志文件为例,它对绝大部分可登录用户仅可读,若对其覆盖写入将永久丢失日志信息。在复杂的多用户协同系统中,要严格管理单用户权限、组用户权限,慎用root用户权限。

 

8.png

 

图8只读日志文件

对于标准的rootfs,不建议普通用户直接去更改它,在uboot挂载该文件系统时直接赋予它只读权限。将bootargs的最后一项赋值为“ro”即为read only。若需临时修改为读写模式,可使用mount -o remount,rw /,用于临时修改为可读写模式,尽量避免修改uboot代码。

 

9.png

 

图9 文件系统权限更改

文件备份时保护重要文件的另一种手段,在严格的权限管理机制也不能保证万无一失。重要文件可使用脚本自动化、定时备份,必要时还可以将文件保存到其他物理存储介质或云盘中。在涉及到扣费、计费时,数据及文件的安全性显得尤为重要。ZLG致远电子“公共交通的移动支付—公交POS”方案中使用的ARM9核心板采用双备份文件系统及UPS掉电保护设计来保证扣费数据的可靠。

 

10.jpg

 

图10文件系统双备份

换一批

延伸阅读

[行业资讯] 开源平台化成科技公司必由之路 包括微软

开源平台化成科技公司必由之路 包括微软

曾经的科技市场有自己的玩法,那就是通过占有独一无二的资源来获取强大的议价能力。不过,现在新趋势正在逐渐瓦解这一传统玩法,公司向平台化发展并与人才、技术和信息生态......

关键字:Linux 微软

[行业资讯] Linux Kernel 5.0或在达成600万Git Objects时到来

Linux Kernel 5.0或在达成600万Git Objects时到来

早两天,Linus Torvalds在Google+上表示,Linux内核当前正在从4.0向5.0大版本迈进(half-way between),同时接近600万Git的目标。之前的大版本,比如Linux 3.0或Linux 4.0......

关键字:Linux5.0

[行业资讯] 2016年最佳Linux发行版排行榜

2016年最佳Linux发行版排行榜

2015年,不管在企业市场还是个人消费市场都是 Linux 非常重要的一年。作为一个自2005年起就开始使用 Linux 的 Linuxer ,我门见证了 Linux 在过去十年的成长。2016 Linux......

关键字:ezgo Linux openSUSE Linux

[行业资讯] Linux基金会宣布举办新会议,支持开源大数据社区协作

Linux基金会宣布举办新会议,支持开源大数据社区协作

Apache: Big Data大会,开源项目提交者将汇聚一堂,促进Apache大数据技术的应用Marketwired 2015年5月28日美国加利福尼亚州旧金山消息――致力于促进Linux和协作开发发展的......

关键字: Linux 开源大数据

[行业资讯] Linux之父:讨厌封闭 回绝乔布斯

Linux之父:讨厌封闭 回绝乔布斯

一个21岁的芬兰大学生,在学生宿舍里写了一个操作系统的内核——Linux,然后公布于众,吸引了成千上万的程序员为之增补、修改和传播,短短几年就拥有了千万的用户......

关键字:linux 苹果 乔布斯
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14