02_Linux文件权限和目录配置
用户和用户组
Linux张红用户 和用户组的概念,感觉和windows中是比较相似的。
权限最大的是root,它就像是windows中的Administrator。
多个普通用户之间是相互独立的。他们之间的权限可以交叉,也可以井水不犯河水。
同样的,单个用户可以属于多个组。
Linux文件属性
用ls命令查看文件属性,我们来具体看看每个属性的意义
ls -al
以如下文件举例:
drwxr-xr-x 3 root root 17 3月 8 21:43 .config
文件权限 链接数 用户 用户组 文件最后修改时间 文件名
具体来说,权限部分又分别是
d rwx r-x r-x
文件类型 用户权限 群组权限 其他人权限
- 文件类型:d代表目录,-则是文件, l则表示是链接文件, b或c表示是存储设备
- 权限:3个为一组,分别表示文件所有者的权限,群组的权限,和其他人的权限。其中r表示读,w表示写,x表示执行。对文件夹来说,x的意义就是表示可以进入该文件夹。
修改文件权限
- 修改文件所属组(参数R用在修改文件夹时,表示一并修改文件夹下所有文件
chgrp -R 组名 文件名或目录名
- 修改文件所有者
chown -R 用户名 文件名或目录名
- 修改权限,常见的命令是
chmod -R 755 文件或目录
这是什么意思呢,原来,linux是用数字表示权限,权限的数字如下:
r:4 w:2 x:1
所以755的意思就是,所有者具有读写和执行的权限,组和其他用户只读和执行。
一些常用的数字含义:
770 | 用户和用户组有所有权限,其他人无权限 |
---|---|
775 | 用户和用户组有所有权限,其他人只读 |
664 | shell脚本的默认权限通常是664,需要变成755才可以执行 |
当然也可以不用数字,用下列方式改变权限。不过还是用数字看上去专业一点
chmod u=rwx,g=rx,o=r 文件名
各个权限的具体意义:
w | 删除、更新、新建文件夹或目录 |
---|---|
r | 读取,就像灯光一样,灯光照亮了房间,你就看到了里面的东西(文件) |
x | 执行,很多时候,没有r,有x也可以读取文件夹中的文件。因为x代表你可以进入这个房间,那么即使没有灯光(r权限),你依然可以摸黑找到东西。 |
文件种类和扩展名
常见文件有以下几种:
- 常规文件:也就是前面所说,文件类型是-的文件
- 纯文本文件:我们可以用cat直接读出来
- 二进制文件:可执行文件就是这个格式
- 数据文件:不可直接读取,用cat读取就是乱码
- 目录:也就是文件夹,d
- 链接文件:link,类似windows中的快捷方式
- 设备与设备文件:device。比如硬盘和鼠标。
- 数据接口文件:sockets,通常用作网络上的数据交换。在tmp或run目录可以看到这些文件
- 数据输送文件:FIFO,pipe
扩展名:事实上,Linux文件不像windows有扩展名一说。比如linux的文件,能不能执行完全取决于它的权限,和后缀名没有任何关系。因此,linux的后缀名,是为了让我们能比较容易识别这是什么文件,比如
*.sh | shell脚本 |
---|---|
*.tar.gz | 压缩文件 |
.html | 网页文件 |
长度限制:文件名最长为255字节,也就是英文255个字母,中文128个汉字左右
前面有.的文件的隐藏文件
目录配置标准FHS
由于Linux有众多发行版本,这样每个发行商把系统文件放在不同的目录的话,对用户来说就太不方便了。于是就诞生了FHS,来规定每个默认目录的作用。
- 一层FHS目录
/bin | 系统可执行文件,比如 |
---|---|
/boot | 系统启动的引导文件 |
/dev | 设备和接口 |
/etc | 系统主要的配置文件,其他配置文件建议放在/etc/opt |
/lib | 系统用到的函数库 |
/media | 可删除的设备,比如软盘、光盘 |
/mnt | 挂载的设备,比如虚拟光驱加载的镜像文件 |
/opt | 第三方软件,建议安装在这个目录 |
/run | 保存系统运行信息 |
/sbin | 设置系统环境的一些命令 |
/srv | 某些网络服务使用的目录 |
/tmp | 任何人都可访问,放临时文件或下载文件的位置。建议定期清除 |
/usr | 后续说明 |
/var | 后续说明 |
上面这些是必须存在的目录,以下是建议存在的目录
/home | 默认普通用户的家目录 |
---|---|
/lib64 | 支持64位的lib库 |
/root | root用户的家目录 |
- 二层FSH目录usr。usr是UNIX Software Resource的缩写,并不是user
必须存在:
/usr/bin | 所有一般用户可以使用的命令。Centos7以后,使用链接的方式将bin链接至此 |
---|---|
/usr/lib | 与/lib相同,/lib链接到这里 |
/usr/local | 一些系统软件建议安装在这里,比如python3 |
/usr/sbin | 基本等于/sbin |
/usr/share | 放置只读文件 |
- 二层目录var
/var/cache | 程序运行产生的缓存 |
---|---|
/var/lib | 程序运行时用到的数据文件,比如MySQL的数据文件/var/lib/mysql/ |
/var/lock | 一次只能被一个应用程序使用的文件或设备 |
var/log | 系统日志存储的位置 |
var/mail | 邮件 |
var/run | 某些程序启动后,pid会放置在这个目录下 |
/var/spool | 放置一些待使用的队列数据,之后会删除。 |
目录树以及绝对路径和相对路径
Linux的所有目录都开始于根目录,也就是/
从根目录开始写的路径就是绝对路径,你在哪里都可以访问到;
而在当前目录写的基于当前目录的路径,就是相对路径。
# 绝对路径
cd /var/log
cd /
# 相对路径
cd var
cd log
# 回到上层目录
cd ..