概述

Linux/Unix 是多用户多任务操作系统,所有的文件皆有其拥有者(Owner),文件或目录的访问权限分为只读可写可执行三种。

以文件为例:

  • 可读:可以查看文件里面的内容,而禁止对其做任何的更改操作。
    在这里插入图片描述

  • 可写:对文件的内容做编辑
    在这里插入图片描述

  • 可执行:该操作只对脚本目录生效,表示允许将该文件作为一个程序执行。

  • 文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。

如果是对文件夹的可读、可写、可操作是什么含义?

可读:查看文件夹内部的信息
可写:代表可以删除文件夹内的文件或者修改文件夹里面的文件的名称

用户也可根据需要把访问权限设置为需要的任何组合,有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。

  • 所有者一般是文件的创建者,所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户,在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。

查看目录和文件权限:ls

我们可以使用ls命令来查看一个文件或者目录的权限:

使用该命令的 -l参数
在这里插入图片描述

目录:drwxr-xr-x. 2 aismall01 aismall01 6 11月 29 2020 公共

文件:-rw-rw-r--. 1 aismall01 aismall01 982 11月 29 2020 红黑树.txt

.之前的参数,10个字符确定不同用户能对文件或者目录可以执行什么动作:我们以公共这个公共这个目录来说

  • 第一个字符:(-)代表文件、(d)目录,(l)链接

其余字符每3个一组:读(r)、写(w)、执行(x)

  • 第一组rwx:目录所有者的权限是读、写和执行

  • 第二组r-x与目录所有者同一组的用户的权限是读、不能写,但可以执行

  • 第三组r-x不与目录所有者同组的其他用户的权限是读、不能写,但可以执行

注意:也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7

下面是点.后面的参数介绍

  • 1:表示连接的文件数

  • aismall01: 表示用户

  • aismall01:表示用户所在的组

  • 6:表示文件大小(字节)

  • 11月 29 2020 :表示最后修改日期

  • 公共 :表示文件名

改变权限的命令:chmod

提前须知:万能的root用户无视一切权限设置

修改文件或者目录权限一般会使用chmod命令,利用 chmod 可以控制文件如何被他人所调用。

注意:

  • 当确定了一个文件的访问权限后,用户可以利用Linux系统提供的chmod 命令重新设定不同的访问权限。

chmod:change the permissions mode of a file

Linux/Unix 的文件调用权限分为三级 :

  • 文件所有者(Owner)
  • 用户组(Group)
  • 其它用户(Other Users)

chmod命令:是控制用户修改文件或目录的权限

  • 语法

chmod [参数] [文件]

一般写法,方括号中为可选参数chmod [-cfvR] [--help] [--version] mode file...

简化写法,我们只关注mode参数:chmod mode files

  • 其中mode可以通过字符串形式数字形式设定

字符串形式配置:

mode写法:[ugoa][+-=][rwx]

  • [ugoa]表示:
    • u(owner):表示文件所有者,即创建文件的人
    • g(group):表示和文件所有者相同组的用户
    • o(other):表示和文件所有者不相同group的用户
    • a(all):表示所有用户
  • [+-=]表示:
    • +:表示给指定的用户授权指定的权限
    • -: 表示撤销指定用户的某个权限
    • =: 将指定用户的指定权限重新设置
  • [rwx]表示:
    • r:可读权限
    • w:可写权限
    • x:可执行权限
  • 通过[ugoa][+-=][rwx]拼接,配置文件和目录的访问权限。

举例:

  • 环境准备

我们先创建两个用户(test01,test20),分别再两个用户组(test01,test02),使用下面的命令即可实现:
useradd test01 -d /test01 -p 123456
useradd test02 -d /test02 -p 123456
在这里插入图片描述

在test01的用户目录test01下面创建一个文件file01.txt
在test02的用户目录test02下面创建一个文件file02.txt
在这里插入图片描述

  • 例子1:给file01.txt文件所有者设置不可读不可写不可执行的权限

chmod u= /test01/file01.txt
在这里插入图片描述

分析:u表示文件所有者,=表示重新给用户授权,后面为空表示没有任何权限

  • 例子2:把file01.txt文件设置为所有用户可读可写可执行。

注意:因为file01.txt在test01目录下面,所以如果test01目录的权限不打开,只打开file01.txt的权限是不行的,我们来展示一下:
在这里插入图片描述

数字形式配置:

相信这是我们最常见的赋权方式:chmod -R 777 /home/AISMALL/AISMALL.txt

  • chmod可以使用八进制数来指定权限,无需再使用指定的权限和用户的字母来进行标识,通过读写执行等3个权限的数字来进行设置
    • r(读)的权限的数字为4。
    • w(写)的权限的数字为2。
    • x(执行)的权限数字为1。
  • 所以7表示的赋权的用户有读写执行权限,最大的权限,下面是对照表。
八进制值权限二进制值rwx
7读+写+执行111rwx
6读+写110rw-
5读+执行101r-x
4只读100r–
3写+执行011-wx
2只写010-w-
1只执行001–x
0无权限000

改变所有者的命令:chown

Linux/Unix 是多用户多任务操作系统,所有的文件皆有其拥有者(Owner),利用 chown命令可以将文件的拥有者加以改变,一般来说,这个命令只能由系统管理者(root)使用,一般用户没有权限来改变别人的文件的拥有者,也没有权限可以将自己的文件的拥有者改设为别人,只有系统管理者(root)才有这样的权限。

chown 命令:

  • 功能:更改某个文件或目录的属主和属组
  • 语法:chown [选项] 用户或组 文件
  • 部分参数解释:
    • -R :递归式地改变指定目录及其下的所有子目录和文件的拥有者。
    • -v :显示chown命令所做的工作。

举例:

  • 例1:把文件file01.txt的所有者改为test02

chown test02 file01.txt
在这里插入图片描述

  • 例2:把目录file01.txt 所属组改为test02

chown :test02 file01.txt
在这里插入图片描述
注意:还可以这样:chown .test02 file01.txt

  • 例3:同时把file01.txt文件的所属组和所有者同时改回来,为test01

chown test01:test01 file01.txt
在这里插入图片描述

  • 例4:如果为目录,而且目录里面有文件,我们可以使用-R参数来进行递归式地改变,指定目录及其下的所有子目录和文件的属组

chown - R test02:test02 /test01

注意:使用用户ID(UID),组ID(GID)也是可以的。

改变用户组的命令:chgrp

chgrp命令

  • 功能:改变文件或目录所属的组。
  • 语法:chgrp [选项] group filename
  • 部分参数解释:
    • - R :递归式地改变指定目录及其下的所有子目录和文件的属组。

举例:

  • 例1:改变/test01及其子目录下的所有文件的属组为test02

chgrp - R test02 /test01

Logo

更多推荐