Linux的文件权限与目录配置
1.用户与用户组的概念
用户与用户组以及用户权限是Linux区别于Windows的地方,Linux提出的用户与用户组的概念方便了管理员的管理,同时,其体现了Linux是一个可以多人多线操作的系统
1.1.root用户
root用户拥有Linux系统中的最高权限,其区别于普通用户,root用户的home在**/**位置。因此,一般Linux在进入时,尽量不要采用root用户登陆。
1.2.普通用户
普通用户与WIndows下的用户差不多,其目录位置在/home下,假设有个叫zhangsan的用户,那么该用户的家目录是/home/zhangsan
1.3.用户组
在我的理解里,用户组的概念就是Linux方便需要对统一类型的用户进行管理而设计的概念。比如zhangsan和lisi,他们的权限比较高,属于管理层,那么可以给他们建立一个组,group1,可以改变这个组的权限从而改变其中的用户权限,group一般用g表示。
1.4.其他人
其他人的概念在文件权限中非常重要,若有一个文件,这个文件属于zhangsan,zhangsan属于group1,那么在这里,其他人就是指group1以外的所有用户,其他人用o表示。
1.5.用户文件位置信息
linux下用户的文件信息位置(部分)
zhangsan@Aliyun:~$ ls -l /etc/passwd(这里保存了用户的信息)
zhangsan@Aliyun:~$ ls -l /etc/shadow(这里保存了用户的密码)
zhangsan@Aliyun:~$ ls -l /etc/group(这里保存了组的密码)
2.Linux的文件属性
如图,当我以zhangjie用户登陆后,其显示界面如图所示,每个文件都包含了大量的信息。下面让我们来一一解读(FuXi)
2.1文件的类型和权限
第一列代表的是这个文件的类型和权限,一共有10个字母。第一个字母代表了文件的类型。下面举例几个常见的类型
字母 | 类型 |
---|---|
d | 代表目录 |
- | 代表普通文件,如上图中的最后一个文件就是text文件 |
l | 代表链接文件(linkfile)相当于一个快捷方式 |
b | 设备文件中可供储存的接口设备(block) |
c | 设备文件中的串行端口设备(character) |
接下来的9个字母,三个为一组,一共有三组,分别代表了该文件的所有者的权限,该文件所在group的权限以及other的权限。具体的示意图已经在下图中表示(OneNote好用)
那么根据上文,我们就可以知道这个文件是一个端口设备,文件的权限是:
- OWN 拥有RW权限
- group拥有RW权限
- Other不拥有任何权限
当然,这里也要说明一下各个权限的含义,W代表了写权限,R代表了读权限,X代表了执行权限(execute)
同时,该文件的大小以及文件最后的修改时间都可以从上文中得知。
2.2修改文件的权限
修改Linux的文件权限有三种命令,分别为:
- chgrp(change+group)更改组
- chown(change+owm)更改所有者
- chmod(change+mode)更改文件的权限
那么,他们的基本用法是什么呢?,首先看上图
那么当我输入
root@Aliyun:~$ chgrp -R zhengxianjun Videos
这个文件夹的所有组就变了
当然,也可以改变文件的所有组
zhangsan@Aliyun:~$ chgrp -R zhengxianjun:zhangjie Videos
文件的所有者以及所有组均会发生改变
在介绍chmod时,比较常用的方法为数字法,每个选项对应了一个数字。数字的具体对于方式为:
- R=4
- W=2
- X=1
- -=0
那么对于一个文件,我们要更改一个文件的权限时,输入:
root@Aliyun:~$ chmod 777 Videos
其结果显示如下:
值得注意的是,在Linux下,一个文件是否有执行能力直接通过该文件的执行权限就可以得知,与该文件的后缀关系不大。
对于一个目录来说,如果只有R权限而没有X权限,那么,用户只能读取文件的名字,关于文件的详细信息都是无法读取的。同时,也不能够将该目录作为自己的工作目录。值得注意的是,当该用户拥有这个文件夹的rwx权限时,对目录下的所有文件,其都拥有RWX权限。
3.linux的目录配置
3.1Linux目录的配置
Linux的目录配置需要符合FHS标准,需要有一下子目录才好:
目录 | 应该放置的文件内容 |
---|---|
/bin | 系统有很多放置执行文件的目录,但是/bin比较特殊。因为/bin放置的是在单用户维护模式下还能够被操作的命令。在bin模式下的命令可以被root与普通用户同时使用,主要含有cat,chmod,chown,date,mv等命令 |
/boot | 该目录主要放置开机会用到的文件,包括Linux内核文件以及开机菜单与开始所需的配置文件 |
/dev | 在Linux系统上,任何设备与设备的接口都是以文件的形式存在于这个目录中的 |
/etc | 系统的配置文件都放在这个目录中 |
/home | 系统默认的用户文件夹 |
/lib | 开机会用到的函数库,以及在/bin或者/sbin下面的命令会调用的函数库 |
/media | 放置的是软盘光盘和DVD,即代表可删除的设备 |
/mnt | 暂时挂载的设备 |
/opt | 给第三方软件放置的目录 |
/root | 系统管理员的主文件夹 |
/sbin | 开机过程中需要的执行命令 |
/srv | 网络服务启动后的数据 |
/tmp | 正在执行的程序暂时放置位置的地方 |
/var | 针对时常变动的文件 |
/usr | 与软件的安装/执行有关 |
Linux的目录树
我们将Linux以目录树的形式展开,得到的目录树的架构图如下所示: