搞基础系列-Linux系统-文件权限与目录配置

750 阅读4分钟

前言

作为一个Android开发者,可能大部分时间都放在了上层的代码编写和学习上,对于一些基础的东西像操作系统、网络、数据结构与算法还有设计模式可能了解不多,搞基础系列准备以个人的经验为出发,整理一些个人认为比较重要的,对工作有帮助的一些基础知识点,虽不能面面俱到,但力求包含重点常见知识,这不仅是一个分享,也是个人学习的记录和总结。

Linux学习路线

image
(这个路线图只是从自己的经验和实际出发得出的,个人觉得在平时可以用到和需要了解的知识,不求面面俱到,只要重点记忆突破。)

1.Linux中的用户与用户组

众所周知,Linux是一个多用户系统,每个用户通过权限配置实现彼此之间用户的隔离。用户大家应该都可以理解,但是用户组又是干什么的?举个例子,比如说一个实验室,里面有个显微镜,只要是这个实验室里的实验员,那么都可以使用这个显微镜,但是实验室外的人不能使用,这里实验员就是一个用户,实验室里的实验员就属于一个组,显微镜就相当于文件,这里就可以看到用户组的作用了,这个显微镜或者说这个文件,就是可以被多人共享的,现实中也有这种需求,所以这就是用户组的概念。咱们看一下ls命令查看的文件输出

第一列:drwxr-xr-x,代表着文件类型与权限,其中d代表为文件夹,-代表文件,之后的前三个字幕rwx代表文件拥有者用户的权限,r-x代表着用户组对该文件拥有的权限,最后的三个r-x代表着其他用户对该文件的权限。

第三列:mac代表着这个文件的所有者账户

第四列:代表这个文件所属的用户组

还有一个万能账户,那就是root,他拥有一切权限,可以去为所欲为,所以root权限下一定要小心操作。

2.Linux中的权限

Linux中的权限分为三类,r(可读,可以用数字4代替),w(可写,可以用数字2代替),x(可执行,可以用数字1代替),但是这三种权限在文件和文件夹上是有区别的。

(1)文件权限

r---可以读取查看该文件

w---可以修改该文件

x---可以执行该文件,一般都是shell文件

(2)文件夹权限

r---可以查看该文件夹下的文件目录

w---可以修改该文件夹下的文件,例如删除,新建

x---可以进入该目录,将当前路径设置为该目录

这里需要关注的就是x(可执行)在文件夹和文件中的不同,因为文件夹没有什么逻辑可执行,所以他的x权限和单文件有明显的不同,当一个用户没有对该文件夹的x权限时,那么他是无法进入这个目录的,也就是说cd到该文件夹是被禁止的。

如上图所示,我用root账户创建了一个文件夹test,这个文件夹对同组用户具有r和w权限,但是没有x权限,然后我切换回mac账户,可以看到mac账户和root账户同属于一个组staff,当我执行cd test命令想要进入test文件夹时,发现permission denied,没有权限。无法进入目录,同时带来的问题就是你无法在该目录下创建文件或者文件夹,所以空有w权限,但是无用武之地,所以对于文件夹,给予w权限的时候x权限也要一并给到。

3.修改权限的相关shell命令

chgrp---修改文件所属用户组 chown---修改文件所属用户 chmod---修改文件权限 这三个方法的执行都需要root权限,所以在普通用户调用时需要sudo。 这里以chmod方法为例,如果我们想修改test的权限,让它对所有用户都具有rwx权限。还记得之前说的权限可以用数字代替吗?所以通过调用 sudo chmod 777 test就可以修改。其他命令的方法可以通过man来看,这里不做太多介绍了。

4.目录配置(FHS)

Linux有很多发行版本,如果每个版本相同功能的文件放在不同的路径下,这就会让用户很疑惑,FHS就是Linux的一个标准,其目的就是希望用户可以了解到已安装软件通常放置于哪个目录下,其他独立的软件开发商,操作系统制作者以及想要维护的系统的用户,都能够遵循FHS的标准,具体就看图吧,一图胜千言。

5.参考

《鸟哥的Linux私房菜》

image
关注我的公众号