本篇的内容开始进入Linux系统的本体学习,既然要学习Linux系统,那么了解Linux系统中的文件与目录
肯定是首要的任务喽!
说点题外话,之前的五篇笔记都是干巴巴的笔记,我也觉得不好看
在我更新了系统后,提供了screenshot(即截图)功能,方便了我的笔记记录,从本篇开始
我在笔记中会加入插图,更方便我的复习与交流。
注:Evilcrow为我的用户名,以后不再注释。
- 文件权限
本章的内容,分为两大模块,文件权限和目录配置
从之前的章节开始,就一直在强调一个Linux中的重要概念:一切皆文件!
而且,听闻过Linux的同学都听说过Linux的安全性,那么,Linux中文件到底有多大的权限?
首先,来了解一组概念:
user,group,others
这是在Linux系统操作时很重要的三个概念,接下来我会一一介绍:
首先,user,文件总会有文件的所有者,对吗?
而这个user就是指文件的所有者。
在进行开发时,Linux作为多用户,多任务的主机,肯定会拥有多个用户,但是进行开发时,
用户肯定会进行分组。而且,会有相互竞争的小组。那么,对于不同的小组怎么办呢?
这个时候,group所指的是就是用户组
用户,只是一个独立的个体,进行开发时,多个用户为一组,相互之间,文件是可以进行交流并修改的。
所以,他们应该作为一个用户组进行管理。
既然有一个组,那么其他的组,相对于这个组即是其他人
others所表示的就是其他人的意思
总结一下:
在Linux中,使用者分为,user,group,others三种。
三者的关系是:用户属于用户组,其他的使用者,使用组都属于其他人(others)。
注:在三种使用者身份之外,还存在着一个Boss,即,管理员。
全称:系统管理员,一般叫root,这个东西是Linux中最无敌的存在,一切的文件都可以被其操作
在介绍了以后上几个概念后,我们可以开始文件权限的学习了
在Linux中,文件权限决定着文件的归属以及其他人对于此文件所能进行操作的权利属性。
当你初次接触Linux系统,可能经常会看见这样的情况
会出现Permission denied 就是因为权限不够所致,当你在处理自己当前用户权限以外
的文件时,就会提醒你,权限不够。
那么,我们如何了解到文件的权限属性呢?
现在没有正式开始命令的操作和学习,但是此处需要用到一个Linux系统操作的常用命令
ls 命令
此命令是一个极其重要的命令,全称为list,即列表,列出目录中的文件
ls命令也具有许多的选项和参数,以下介绍其中较为常用的
ls命令单独使用只会列出其中的文件,不包括隐藏文件
ls -a 使用此选项可以列出所有文件,其中以.开头的是隐藏文件
ls -l 将所有的文件以列表的形式列出,并且将所有的文件属性也列出来。
注,-l,-a只是其中最常用的两个命令,而且这两个选项可以组合使用
以下为演示:
上图展示了ls,ls -a,ls -l三个命令
上图为ls -al命令
好,目前ls命令了解这么多已经足够了,详情,请戳man或者info。
通过ls 命令的 -l选项可以列出文件所有的属性,十分方便我们进行文件权限属性的学习
那么,接下来一起来看看一个文件究竟有多少的属性:
我新建一个文件夹test,其中包含了文件file
其中会使用到的cd,touch,mkdir rm rmdir 命令在下一章,我会进行详解。
上图:
因为使用了ls -al命令,所以连隐藏文件也显示出来,这其中,.表示当前目录,..表示上级目录
现在你可能不是很理解,但是以后你会了解到这两个隐藏文件的方便之处的。
接下来,来仔细看看文件(目录)的属性吧!
- 文件(目录)的权限属性,共有10个字符,其中
第1个字符表示文件类型,后面每三个字符一组,表示user,group,others各自的r,w,x属性。- 结点数,表示与此文件(目录)有所联系的节点数目。此概念之后会详解。
- user,表示文件所属用户,一般情况下,文件所属用户同文件建立者
- group,表示文件所属用户组
- 大小,注意:此处表示的是,文件为内容大小,目录为其容量大小,以B给出。
- 时间,文件创建的时间或最近的修改时间,可以通过ls –full-time完全显示其详细时间。
- 文件名,或者目录名
以上,即为一个文件或者目录,所能具有的属性,尤其注意其前十个权限属性十分重要!
文件权限
举个栗子:-rwxr-xr-x root root ……………(信息省略)
对于此文件,属于root用户,root用户组。
Evilcrow作为others,对于此文件,仅仅具有r,x权限,并不能进行修改的权限
每次分析文件的权限时,仔细分清,用户,用户组,其他人的概念,并且对r,w,x进行分析即可了解
浅谈,文件权限的重要性
1. 最重要的,文件权限可以保护文件的安全性,设置得当,你想让谁操作文件,谁才可以操作文件,不想让谁操作文件,甚至文件名都不会被看见
2. Linux经常作为主机进行开发,同一个团队的成员,之间进行资料共享,就要完全靠group
3. 从反面来说,如果你对权限的问题没有足够的重视,那么,你的PC机对于有恶意的人而言
就是毫无防线,等着被破坏的,虽然最近“比特币勒索”事件是OS X和Linux升华的一天,但是也不能保证,说不定那一天就会有针对于Linux系统的破坏事件的发生
以上,所以我们掌握好文件权限的内容,十分有必要!
那么,说了这么多,到底怎么样,才能进行文件的权限操作呢???
首先,要用到之前说到的一个Boss,管理员账户 root
强烈建议:从此处开始,往下的内容,以root进行学习!
root账户,权力很大,承担的责任也很多,希望大家能妥善使用root账户
建议:su 进入root账户,使用exit 可退出root,回到一般用户
之前说过,在Linux系统中,有三种使用者,user,group,others,又各自有r,w,x三种权限
那么,权限操作就是针对这9中权限的操作
介绍三种命令,用于权限修改:
注:必须在root用户下进行这些命令。否则,权限无效
1.chgrp 改变用户组 即(change group)
2.chown 改变用户 即(change owner)
3.chmod 改变权限 即(change model)
1.chgrp 改变用户组
重要参数:-R 递归改变权限,即把该目录下的文件,目录的权限全部同步修改,很好用,也很危险!
语法: chgrp [-R] group dirname/filename (目录/文件名)
如上例所示,我先进入root用户,从’$’变为’#’,之后进行chagrp操作,
改变file的用户组:Evilcrow->root
注意:不管进行用户组,还是用户的权限更改操作时,都必须是目前系统中已经注册的用户和用户组,不然,操作时不能成功的,系统不会自己去进行新用户,新用户组的添加。
2.chown 改变用户
重要参数:同上 [-R],递归更改用户
语法: chown [-R] owner dirname/filename 改变所属用户
或者这样 chown [-R] owner:group dirname/filename 改变所属用户,用户组
或者这样 chown [-R] .group dirname/filename 改变所属用户组
如上,我分别进行了,用户,用户和用户组,用户组的权限更改,都是chown命令实现
文件的原始信息,在第一行。可以对照比较,以认识chown命令的详细用法。
那么,我们来说说,为什么会有chown,chgrp两个命令的出现
大家肯定会经常进行文件的复制,移动之类的操作,在Linux中,复制文件后,文件的不变
即意味着,user,group的信息也不会更新,即你有可能打不开你从从其它地方所拷贝过来的文件!!!
即使是,从网路上,下载来的文件也不一定能保证其文件权限的属性!
3.chmod 改变权限
说完了改变用户,用户组的命令后,来看看怎么进行文件权限的更改,
重要参数:-R 递归改变权限 同理
用法 :注:chmod 改变文件/目录权限,有数字更改,字符更改两种方式
1.数字更改方式
我们都知道,user,group,others都具有r,w,x三种权限属性,便有以下:
属性 | 权数 |
---|---|
r | 4 |
w | 2 |
x | 1 |
有了上表,我们就可以据此来写出user,group,others各自的权限权数
chmod [-R] xyz dirname/filename
其中xyz,即为所要修改文件的权数,,
由上图,并对照权限表,基本可以掌握此类修改文件权限的方法
2.使用符号进行文件权限的修改
这里使用符号,用法类似与使用数字进行修改,先看下表:
命令 | 用户 | 权限处理 | 权限 | |
---|---|---|---|---|
g | +(加入) | r | ||
chmod | o | -(除去) | w | dirname/filename |
a | =(设置) | x | ||
u | ` |
使用上表进行chmod的权限更改也是十分方便的。
使用如上的权限更改方式,说实话,我也不习惯
但是,不可否认的是,当你不知道原文件所具有的属性时,使用,a,=无疑是最方便的操作
两种方式,各有其方便之处,希望大家能熟练运用
那么,接下来,学会了,更改文件/目录的权限后,
我们来谈谈对于目录,对于文件,权限到底有什么意义?
首先,记住目录与文件的权限属性,有不少差别!
文件权限
文件指的实际上是,含有数据的东西,包括文本数据,数据库内容文件,二进制可执行文件
对文件而言,权限实际意义上:
r:可读,意思是指可以读取文件的内容,即能读取文件的数据,eg:vim list
w:可写,意思就是可以修改文件的内容,比如你修改文件的内容,:wq保存退出
x:可执行,这个是身份重要的概念!!!!!,我在下面专门谈谈
大家平时可能使用win的机会更多,我就讲win下与Linux下的区别吧!
Win:windows中的可执行文件,都有其后缀名,
比如:可以执行的,.c ,.cpp,.asm,.obj,.exe有的可以直接打开,有的需要对应的程序
但是,后缀名/扩展名能反映出该文件的属性及类型
但是,在Linux下:
切记:
**文件的属性,可执行与否,与后缀名无关!!!**
**文件的属性,可执行与否,与后缀名无关!!!**
**文件的属性,可执行与否,与后缀名无关!!!**
重要的事要说三遍,换句话说,Linux下,文件没有后缀名/扩展名
所以,文件的可执行与否,与-x权限属性有着莫大的关系,
但是,你有会说,为什么有的文件还有有扩展名???
**是这样:虽然没有扩展名这一说,但是,我们建议,加上扩展名方便文件的管理与分类!**
目录权限
目录也是Linux文件系统中一个十分重要的概念,我会在下一篇中详解。
对于目录而言:
r:可读,意思是指可以读出目录中的文件信息
w:可写,意思是指可以对目录进行操作
指的是可以进行:
进入目录
新建文件
删除文件
移动,重命名文件
等一系列对于文件的操作
x:可执行,
你一定会疑惑,此处的可执行到底是什么意思???
此处的可执行,指的是可以将此目录切换为你的工作目录,cd命令(之后会详解)
举个例子,只拥有r,可读并不能进入该目录,最多只能浏览目录的信息
此例子,test 目录只有可读权限,对于一般用户,路已经被堵死了,无法进入test目录
之后,我用root示范,可以进入目录,即证明目录是存在的。
在此强调一点:如果要给others访问目录数据的权限,至少要给予r,x权限,
但是,w的权限不能随便交出,切记!!!
再举一个例子:
目录test下,用户bin对目录有[-rwx]权限,其中有文件
-rwx——— 2 root root ………file
对于此文件,bin用户不可读,不可写
但是,可以删除该文件,是不是觉得很神奇!
对,没错
在Linux下,目录与文件权限并没有必然联系,文件本体的变动与否与目录关系极大!
相反的,文件本身的属性则更倾向于处理数据内容!
简单,总结,目录的权限里
W,与文件的删除,新建有极大关系
X,则与能否切换进入该目录直接挂钩!
至此,Linux的文件权限内容告一段落,下一篇介绍Linux下的目录配置
June 8, 2017 10:09 PM