鸟哥的Linux私房菜第五章——Linux的文件权限与目录配置
文章目录
第五章——Linux的文件权限与目录配置
Linux最优秀的地方之一就在于他的多用户多任务环境
Linux一般将文件可存取的身份分为三个类
别,分别是 owner/group/others,且三种身份各有 read/write/execute 等权限
一、拥有者、群组、其他人
- 使用者
由于Linux是个多用户多任务的系统,因此可能常常会有多人同时使用这部主机来进行工作的情况发生, 为了考虑每个人的隐私权以及每个人喜好的工作环境,因此,这个“文件拥有者”的角色就显的相当的重要了!
- 群组
可以经由简易的文件权限设置,就能限制非自己团队(亦即是群组啰) 的其他人不能够阅览内容啰!而且亦可以让自己的团队成员可以修改我所创建的文件! 同时,如果我自己还有私人隐密的文件,仍然可以设置成让自己的团队成员也看不到我的文件数据。
- others
因此,我们就可以知道啦,在Linux里面,任何一个文件都具有“User, Group及Others”三种身份的个别权限, 我们可以将上面的说明以下面的图示来解释:
- Linux 使用者身份与群组记录的文件
在我们Linux系统当中,默认的情况下,所有的系统上的帐号与一般身份使用者,还有那个root的相关信息, 都是记录在/etc/passwd这个文件内的。至于个人的密码则是记录在/etc/shadow这个文件下。 此外,Linux所有的群组名称都纪录在/etc/group内!这三个文件可以说是Linux系统里面帐号、密码、群组信息的集中地啰! 不要随便删除这三个文件啊!
二、文件权限
这个文件的权限要如何针对这些所谓的“使用者”与“群组”来设置呢?
1. 文件属性
“ ls ”这一个察看文件的指令啰!在你以dmtsai登陆系统,然后使用 su - 切换身份成为root后, 下达“ ls -al ”看看
要注意的是, 我们还是不建议你直接使用 root 登陆系统,建议使用 su - 这个指令来切换身份喔!离开 su - 则使用 exit 回到 dmtsai 的身份即可!
ls是“list”的意思,重点在显示文件的文件名与相关属性。而选项“-al”则表示列出所有的文件详细的权限与属性(-a表示显示隐藏文件,-l表示详细信息),-l之后共有7个字段
- 第一栏:权限
共有10个字符:- 第1个:类型
- d:目录
- -:文件
- l:链接文件
- 第2、3、4个:对拥有者权限
- r:可读
- w:可写
- x:可执行(execute)
- -:没有该权限,用-代替
- 第5、6、7个:对群组权限
- 第8、9、10个:对其他人权限
- 第1个:类型
不论是那一组权限,基本上,都是“针对某些帐号来设计的权限”喔!以群组来说,他规范的是“加入这个群组的帐号具有什么样的权限”之意
[-][rwx][r-x][r–] > 1 234 567 890
1 为:代表这个文件名为目录或文件,本例中为文件(-); 234为:拥有者的权限,本例中为可读、可写、可执行(rwx); 567为:同群组使用者权限,本例中为可读可执行(rx);890为:其他使用者权限,本例中为可读(r),就是只读之意
同时注意到,rwx所在的位置是不会改变的,有该权限就会显示字符,没有该权限就变成减号(-)就是了。另外,目录与文件的权限意义并不相同,这是因为目录与文件所记录的数据内容不相同所致。 由于目录与文件的权限意义非常的重要,
- 第二栏:链接文件数
每个文件都会将他的权限与属性记录到文件系统的i-node中,不过,我们使用的目录树却是使用文件名来记录, 因此每个文件名就会链接到一个i-node啰!这个属性记录的,就是有多少不同的文件名链接到相同的一个i-node号码去就是了。 - 第三栏:拥有者
- 第四栏:群组
- 第五栏:文件大小
- 第六栏:修改日期
- 第七栏:名称
2. 改变文件属性
几个常用于群组、拥有者、各种身份的权限之修改的指令(root身份使用)
- chgrp:改变文件所属群组
前提:要被改变的群组名称必须要做/etc/group中存在才可以,否则会显示错误
假设你已经是root的身份了,那么在你的主文件夹内有一个名为 initial-setup-ks.cfg 的文件,如何将该文件的群组改变一下呢?假设你已经知道在/etc/group里面已经存在一个名为users的群组, 但是testing这个群组名字就不存在/etc/group当中了,此时改变群组成为users与testing分别会有什么现象发生呢?