Linux(入门基础):08---Linux文件权限、属性以及修改(chgrp、chown、chmod)

  • 在Linux系统下,文件的权限与属性,以及文件的拥有者,都是非常重要的概念,本篇文章将详细介绍一下与文件的各种知识
  • 在介绍文件之前,先介绍一下一个比较重要的概念:用户与用户组

用户与用户组

1.文件拥有者

  • 概念:Linux是多人多任务的系统,因此可能会有很多人来共同使用一台主机。此时,为了考虑到每个人的隐私,这个文件拥有者的角色就十分的重要。就代表该文件属于谁(哪个账户)拥有

2.用户与用户组

  • 用户组:用户组就好比一个团队或者是一个小组,里面可以包含很多的成员
  • 用户:在指定的用户组内,用户组里面的每一个成员就是一个用户
  • 其他人:不属于指定用户组的成员,对于该指定用户组或者用户来说就是其他人

例如:一个class1用户组中有学生:student1,student2,student3。还有一个class2用户组中有学生:student4

  • 上面的class1就是一个用户组,student1-3就是class1用户组里面的用户。class2里面的student4对于class1用户组中的用户来说就是其他人

3.特殊身份

  • root:Linux系统中的特殊身份,拥有最大的权利,无论什么文件都可操作

4.用户身份与用户组的记录文件

下面为一般默认情况下的存储位置

  • 普通用户账号与root账号的信息记录在:/etc/passwd文件中
  • 个人密码记录在:/etc/shadow这个文件内
  • 所有的组名记录在:/etc/group中

一、文件权限

  • 引入:前面的文章,我们提到过三种身份(拥有者,用户组,其他人),每种身份都有三种权限(rwx)
  • 文件分为:文件、文件夹。两个不同的权限有着很大的区别,下面我们将详细讲解

1.文件权限

①文件概念:实际包含数据的地方,例如:一般文本文件、数据库文件、二进制可执行文件(binary program)等

②权限:rwx

  • r(read):可读取文件的实际内容
  • w(write):可以编辑、新增、修改该文件的内容(但不含删除该文件)
  • x(eXecute):该文件具有可以被系统执行的权限

③注意

  • Windows系统下,一个文件是否可以执行是根据文件的后缀名来判断的(例如:.exe,.bat,.com等),但是在Linux下,一个文件是否能被执行,是由文件的x权限决定的

2.目录权限

①目录概念:记录文件名列表(包括文件、子目录)

②权限:rwx

  • r:表示具有读取该目录结构列表的权限(可以用ls命令将该目录的内容列举出来)
  • w:具有改动该目录结构列表的权限(建立新的文件与目录、删除已经存在的文件或目录(不论该文件的权限是什么),将已存在的文件或目录进行更名、移动该目录内的文件、目录位置)
  • x:代表你是否有权限进入该目录内(表示你是否能进入(cd)该目录,使该目录成为你的工作目录

③注意:目录有很多重要的地方需要注意

  • 在目录的w权限中有一个权限很重要,就是:删除已经存在的文件或目录(不论该文件的权限是什么)==>解析:因为该文件或子目录是存在你这个目录下的,即使你不具有对该文件或子目录任何的权限,但你仍然能把它删除(例如:你有一个抽屉,这个抽屉是属于你的,抽屉内有一封闭的文件夹,但是你无法打开这个文件夹进行查看修改等,但是你可以把这个文件夹扔出抽屉(删除))
  • 目录的x权限十分的重要:x代表你是否能进入该目录内,即使目录内有再多的文件与子目录,你没有x权限,也不能进行任何的操作

④举例

  • w权限的一个事例:例如在一个拥有者为dongshao的dir目录下有一个文件text(拥有者与用户组都为root,属性为-rwx------),虽然dongshao不能操作此文件,但是因为此文件在dongshao所属的dir目录下,dongshao有权限删除这个文件

  • x权限的一个事例:有一个拥有者与用户组都属于root的目录test,属性为:drwxr--r--。我们有一个dongshao的其他用户去进入该目录被决绝(没有x权限进不去),使用ls -l去列出该目录内的内容,可以列出但是显示的都是问号(因为有r权限可以读取,但是权限不足(没有x权限),所以显示的是问号)

 

二、文件的属性

1.我们下面使用:ls  -al 命令列出一组文件进行讲解说明。里面可能会涉及到权限有关的知识,我们会在后面进行讲解

列出文件后,文件的信息被列为7个区域,代表的意思依次为

  • [权限]  [链接]  [拥有者]  [用户组]  [文件大小]  [修改日期]  [文件名]

2.区域分解讲解

①区域1:权限

  • 权限共有10个字符,格式为:--------

第1个字符代表这个文件是:目录、文件或是链接文件

  • d:目录    -:文件     |:链接文件(link file)   
  • b:设备文件中可供存储的周边设备
  • c:设备文件里面的串行端口设备

接下来的9个字符依次被分为三组,均是[rwx]的组合

  • 第一组:文件拥有者的权限
  • 第二组:加入此用户组其他成员的权限
  • 第三组:非本人且没有加入用户组的其他账号的权限

举例:例如下面这个Music文件

  • d开头:说明Music是一个目录。
  • 第一组为rwx:拥有者可以进行读、写、执行。第二组为r-x:用户组的其他成员可以读、执行,但不可写。第三组为r-x:其他人可以读、执行

  • 特殊:如果一个文件的权限为:----------:说明所有人都不能使用,只有root可以操作

②区域2:链接

  • 概念:表示有多少文件名链接到此节点。每个文件都会将它的权限与属性记录到文件系统的inode中,不过,我们使用的目录树却是使用文件名来记录,因此每个文件名就会链接到一个inode,这个属性记录的就是有多少不同的文件名链接到相同的一个inode号码

③区域3:拥有者

  • 概念:代表该文件的拥有者是谁,拥有者账号

④区域4:用户组

  • 概念:表示这个文件的所属用户组

⑤区域5:文件大小

  • 概念:代表该文件的大小,默认单位为字节(Bytes)

⑥区域6:修改日期

  • 概念:代表该文件最近修改的日期
  • 格式:月/日/时间(备注:如果该文件被修改的时间距离现在太久,那么此部分就只显示年份)
  • ls  -l  --full-time:显示完整的时间格式

⑦区域7:文件名

  • 概念:此文件的名称
  • 备注:Linux系统下面,以.开头的文件为隐藏文件

三、修改用户组:chgrp

1.引入:用于修改一个文件的用户组,被修改的组名必须要在/etc/group的文件中存在才行

2.格式

  • chgrp  [-R]  用户组名  文件/目录
  • -R:递归修改(将子文件/子目录都修改),下同

3.举例:

  • 将一个属于dongshao用户组的work目录文件更改为root用户组所有

四、修改拥有者、用户组:chown

1.引入:此命令一般用于修改文件拥有者,用户必须在/etc/passwd这个文件中存在才行。但是,此命令还可以同时修改文件的用户组,我们将在下面介绍

2.格式

  • 单独修改文件拥有者:chown  [-R]  账号名称  文件/目录
  • 同时修改拥有者与用户组方式一:chown  [-R]  账号名称:用户组名称  文件/目录
  • 同时修改拥有者与用户组方式二:chown  [-R]  账号名称.用户组名称  文件/目录  ===>此命令不建议使用,因为很多文件中带有.字符,可容易误判
  • 单独修改用户组:chown  [-R]  .用户组名  文件/目录

3.举例

  • 将一个用户与用户组都是root的work目录修改为用户与用户组都是dongshao

五、修改权限:chmod

1.引入

  • 文件的权限有三种:读(r)、写(w)、执行(x)
  • 修改权限的方式有两种:①数字类型修改   ②符号类型修改

2.数字类型修改

r、w、x三个权限分别有不同的值:4、2、1

r 4
w 2
x 1
  • rwx ===>7
  • r-x ===>5
  • --- ===>0

②格式

  • chmod  [-R]   数字组成  文件/目录

③例如

  • 一个文件的属性为rwxrwxr-x,如果想修改为rwxr--r--,只使用744组成(chmod 744 work)

3.符号类型修改

  • 拥有者、用户组、其他人分别有不同的字符代表
u 代表拥有者
g 代表用户组
o 代表其他人
a

代表三者的结合

  • 另外上面的字符还拥有运算符进行属性的修改
+ 加入
-

移除

= 设置

②格式

  • chmod   字符组成格式   文件/目录

③例如

  • chmod  u=rwx,go=rx  work ===>将work目录的拥有者赋予rwx权限,用户组与其他人赋予rx权限
  • chmod  u-w  work  ===>将work目录的拥有者w权限去除
  • chmod  u+w  work ===>新增work目录的拥有者的w权限

猜你喜欢

转载自blog.csdn.net/qq_41453285/article/details/86067705