鸟哥的linux私房菜(第四版)文件权限与目录配置章节最全总结

1.用户和用户组其他人
2.Linux文件权限概念
3.修改文件属性和权限
4.Linux扩展名问题
5.Linux的目录结构

1.用户和用户组其他人

1.用户:每一个账号代表一个用户,每一个用户都必须属于一个组,当我们在linux系统中创建一个新的用户的时候,系统就会默认创建一个和用户名相同的组,把该用户装里边
2.用户组:就是一群用户所在的集合,每个用户有自己的空间,同时也有公共的空间
3.其他人:就是不属于同一组的两个用户的关系或者是一个组和另外一个组的成员的关系

root用户是最大的无视权限的那种

一般来说所有的普通用户账号和root用户的相关信息都存在于 /ect/passwd 这个文件中,个人的密码是存在于 /etc/shadow 这个文件中,linux所有的组名都是记录在 /etc/group 这个文件中

2.Linux文件权限概念和常用的命令

2.1常用的ls命令

ls:显示当前目录的内容

当然ls也可以加参数:

参数 作用
-a 是显示指定目录下的所有目录和文件,包含隐藏文件(隐藏文件在显示的时候前面带有.)
-l 以列表的方式显示文件的详细信息
-h 以人性化的形式显示文件的大小
-ld 详细查看这个目录的信息
-1 一行一行的显示出来

当然这里的参数也可以连着用如:ls -lh,我们还可以指定一个目录比如:ls -l /etc

2.2常用的cd命令
命令名 含义
cd 返回家目录
cd ~ 返回家目录
cd . . 返回到上一级目录
cd - 是在最近两次目录间来回切换
2.3linux文件属性权限

我们直接在终端输入ls -l之后如图
鸟哥的linux私房菜(第四版)文件权限与目录配置章节最全总结
我们拿第一行来举例:
-rw-rw-r–. 1 master master 77 5月 19 17:38 a.txt

-rw-rw-r--. :表示文件权限类型
1:链接数(博主会在磁盘与文件系统管理章节认真解释)
第一个master:文件拥有者
第二个master:文件所属组
77:文件大小
5月 19 17:38:表示文件创建日期或者最近修改日期
a.txt:文件名

对于 -rw-rw-r–. 的深度解析:
鸟哥的linux私房菜(第四版)文件权限与目录配置章节最全总结
对于上面的rw是写和读权限,x是执行权限,对于x如果是文件的话可执行就是可以运行,如果是一个文件夹的可执行权限来说我们是否可以cd进去,并不是运行

文件类型又分为

符合 代表文件类型
- 普通文件
d 目录
b 设备文件(块设备)
c 设备文件(字符型文件)
l 软连接(快捷方式)

3.修改文件权限和属性

3.1修改文件的权限

1.以字母的方式设置权限;

chmod [who] [+或者-或者=][r/w/x] 文件名

who代表值 表示
u 文件所有者
g 文件所属组
o 表示其他人
a 表示所有(u,g,o)

当我们who的位置什么都不加的时候默认为a

比如我们需要在a.txt文件上把所有人的权限都加上一个x:

chmod a+x a.txt或者chmod +x a.txt

当然我们也可以连起来用比如我们需要想把a.txt文件的用户和其他人的写权限都去掉:

chmod uo-r a.txt

这里的uo-r之间不能有空格即不能写成uo -r

这里边的=是覆盖的意思比如我们把a.txt的文件拥有者的权限改为只能写:

chmod u=r a.txt

2.以数字的方式设置权限

chmod [+或者-或者=][数字1数字2数字3] 文件名
数字1:代表文件拥有者
数字2:文件拥有组
数字3:其他人

数字分别是:

权限 代表数字
r 4
w 2
x 1

和上边的类似,随便举几个例子
去掉a.txt文件的文件拥有者的写读权限

chmod -600 a.txt

这里注意00不可以省略

比如我们把a.txt中所有人的权限修改为只能执行

chmod 111 a.txt

比如我们把a.txt文件的所有人的权限都加上读

chmod +444 a.txt

比如我们把所a.txt文件拥有者的权限改为只读,文件拥有组和其他人都能写和执行

chmod 433 a.txt

3.连同目录里边的文件的权限一起改
有一个注意点

linux中目录也是文件价

我们上边使用chmod的时候其实都是只是对文件进行操作,那么这个文件如果是一个目录的话,只会对目录的权限进行更改,我们还可以对目录和目录里边的文件的权限一起更改

chmod -R [+或者-或者=][数字1数字2数字3] 文件名
R是递归的意思

3.2修改文件所属用户组

chgrp [修改后的组名] [文件名]

当然文件如果是目录的话那么我们也可以连同目录里的文件的权限一起更改

chgrp -R [修改后的组名] [文件名]

注意点:

必须使用root用户才能更改组,而且更改的组必须已经存在于/etc/group中

3.3修改文件所属拥有者

chown [修改后的拥有者] [文件名]

chown -R [修改后的拥有者] [文件名]

我们修改文件拥有组的时候也可以间接的把文件的所属组改了

chown [修改后的拥有者]:[修改后的文件所属组] [文件名]

chown -R [修改后的拥有者]:[修改后的文件所属组] [文件名]

注意点:

必须使用root用户才能更改文件拥有者,而且更改的组必须已经存在于/etc/group中,更改的用户也必须存在于/etc/passwd

4.Linux扩展名问题

除了一些特定的文件需要扩展名之外,其他的有没有扩展名无所谓

我们即使不知道文件的类型,但是只要知道文件的名字,我们就可以用下面的命令来查看文件的类型:

file 文件名

5.Linux的目录结构

5.1FHS的由来

因为利用 Linux 来开发产品或发行版 的社群/公司不个人实在太多了, 如果每个人都用自己的想法来配置档案放置的目彔,那举将可能造成很多管理上的困扰。 你能想象,你进入一个企业之后,所接触到的 Linux 目录配置方法竟然跟你以前学的完全不同吗? 很难想象吧~所以,后来就有所谓的Filesystem Hierarchy Standard (FHS)标准的出炉了,根据FHS的官方文件指出, 他们的主要目的是希望让使用者可以了解到已安装软件通常放置哪一个目彔下, 所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循 FHS 的标准。 也就是说,FHS 的重点在规范每个特定的目彔下应该要放置什么样子的数据而已

5.2目录的四种交互形态

FHS 是根据过去的经验一直再持续的改版的,FHS 依据文件系统使用的频繁不否不是否允讲使用者随意更动, 而将目彔定义成为四种交互作用的形态

  1. 可分享的:可以分享给其他系统挂载使用的目彔,所以包括执行文件不用户的邮件等数据, 是能够分享给网络上其他主机挂载用的目彔;
  2. 不可分享的:自己机器上面运作的装置档案戒者是不程序有关的 socket 档案等, 由于仅与自身机器有关,所以当然就不适合分享给其他主机了。
  3. 不变的:有些数据是不会经常变动的,跟随着 distribution 而不变动。 例如函式库、文件说明文件、系统管理员所管理的主机服务配置文件等等;
  4. 可变动的:经常改变的数据,例如登彔文件、一般用户可自行收受的新闻组等。

部分目录的交互形态
鸟哥的linux私房菜(第四版)文件权限与目录配置章节最全总结

5.3系统目录的存放

我们可以打开linux的计算机,可以看到:
鸟哥的linux私房菜(第四版)文件权限与目录配置章节最全总结
鸟哥的linux私房菜(第四版)文件权限与目录配置章节最全总结
鸟哥的linux私房菜(第四版)文件权限与目录配置章节最全总结
鸟哥的linux私房菜(第四版)文件权限与目录配置章节最全总结
鸟哥的linux私房菜(第四版)文件权限与目录配置章节最全总结
对于usr

/usr 里面放置的数据属二可分享的不可变动的(shareable, static), 如果你知道如何透过网络迚行分割槽的挂载(例如在朋务器篇会谈到的 NFS 朋务器),那举/usr 确实可以分享给局域网络内的其他主机来使用喔!

还有一点usr不是user的缩写而是 Unix Software Resource 的缩写,也就是『Unix操作系统软件资源』所放置的目彔,而不是用户的数据啦,应该将他们的数据合理的分别放置到这个目彔下的次目彔,而不要自行建立该软件自己独立的目彔

对于var:

如果/usr 是安装时会占用较大硬盘容量的目彔,那举/var 就是在系统运作后才会渐渐占用硬盘容量的目彔。 因为/var 目彔主要针对常态怅变劢的档案,包括快取(cache)、登彔档(log file)以及某些软件运作所产生的档案, 包括程序档案(lock file, run file),戒者例如 MySQL 数据库的档案等等。

5.4目录树

tree [目录]

以树的形式显示当前目录的内容
如果使用tree时报错,说明没有安装tree命令详细安装请参考
如何优雅而又不失内涵的在centos下安装tree命令

5.5相对路径绝对路径

绝对路径:从根目录写起的目录的文件名和目录的名称
相对路径:相对于目前路径的文件名写法

举个例子,我们的家目录有一个aa目录,我们分别使用相对和绝对路径进入里边

相对路径:cd aa
绝对路径:cd /home/当前你的用户/aa

当前路径和上一级目录

.:代表当前目录也可以用./表示
..:上一级目录也可以用…/代表

5.6centos的股观察

指令

uname

uname指令及指令+参数的作用

指令 作用
uname 查看当前系统
uname -r 查看内核版本
uname -m 查看操作系统的架构版本
uname -a 查看系统的所有信息

lsb _release -a:也可以查看linux里边的信息