首页 > 系统相关 >Linux学习第三课-文件基本属性

Linux学习第三课-文件基本属性

时间:2023-03-27 18:14:04浏览次数:48  
标签:文件 user1 更改 用户 group1 Linux 第三课 权限 属性

1. 文件基本属性

​ 在Linux中,可以使用llls -l命令来显示一个目录或文件的属性以及所属的用户和组

​ 如在根目录下:

image-20230325150355000

​ 如上图所示,每列的含义为:

  • 第一列表示属性;
  • 第二列对于普通文件是链接数,对于目录文件是第一级子目录数;
  • 第三列表示所属用户;
  • 第四列表示所属组;
  • 第五列表示文件大小,单位是字节;
  • 第六、七、八列表示最后修改时间;
  • 第十列表示文件名

​ 下面对第一列进行详细理解,以Hello.java文件的属性-rw-r--r--来说,

  • 权限显示位一共为10位,分为四段,从第二位算起,每三个一组;
  • 第一位代表文件类型(-表示普通文件,d表示目录);
  • 第2-4位表示文件所属用户拥有的权限(rw-:4+2=6);
  • 第5-7位表示该用户所属组拥有的权限(r--:4);
  • 第8-10位表示其他用户拥有的权限(r--:4);

为什么会有这样的属性呢:

Linux系统是典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限,为了保护系统的安全,Liunx系统对不同的用户访问同一文件(包括目录)的权限做了不同的规定。

​ 在Linux中可以使用一下两个命令来修改文件或目录的所属用户和权限:

  • chown(change owner):修改所属用户与组
  • chmod(change mode):修改文件的权限

2. 更改文件属性

​ 为了演示效果,先创建用户组group1,之后创建用户user1,并将user1加入用户组group1中,再创建用户user2

image-20230325154652158

2.1 更改文件属组

​ 命令:chgrp [-R] 组名 文件名或目录名

-R表示递归更改文件数组,如更改某个目录的属组时,加上-R参数,那么该目录下的所有文件或目录的属组都会改变

​ 分别将根目录下的Hello.java文件和yxq目录的属组更改为刚创建的group1:

image-20230325155457898

image-20230325155644936

2.2 更改文件属主

​ 命令:chown [-R] 属主名 文件名chown [-R] 属主名:属组名 文件名
将usr/local/Hello.java文件的属主名改为user2,再将其改为属主名为user1、属组为group1:

image-20230325161146441

2.3 更改文件属性

​ Linux文件属性有两种设置方式,一种是数字,一种是符号。符号r对应数字4、符号w对应数字2、符号x对应数字1。

2.3.1 数字方式更改

​ 从上面的文件基本属性所讲到的权限共9位,每3位一组,在更改文件属性的时候需要将三个组各自的权限累加,如-rwxrwx---的为:

  • owner = rwx = 4 + 2 + 1 = 7
  • group = rwx = 4 + 2 + 1 = 7
  • others = --- = 0 + 0 + 0 = 0

​ 所以更改文件属性时,文件的权限数字为770。

​ 命令:chmod [-R] xyz 文件或目录

xyz表示属性数值相加后的表示结果770,-R表示进行递归更改,该目录下的所有目录或文件属性都会更改。

​ 将根目录下的Hello.java文件的属性全改为只可读:

image-20230325163541932

​ 将该文件的属性改为只读后,使用vi对该文件内容进行编辑,在保存时会有如下信息:

image-20230325164346949

​ 将根目录下的自创建的yxq目录及子目录的属性更改为可读可写可执行:

image-20230325164233586

image-20230325164255828

2.3.2 符号方式更改

​ 使用u, g, o来代表三种身份的权限,此为,可以使用a表示全部身份,权限可以写成r, w, x,演示如下:

image-20230325165054203

​ 创建新文件123.cnf,查看该文件的默认属性,之后使用符号方式更改其属性,属主的权限为rwx,属组的权限为rw,其他用户的权限为r。

3. 访问权限演示

​ 将根目录下的Hello.java文件属性改为-rw-r-----,该文件的属主为root用户,拥有对该文件的可读可写权限,属组为group1,权限为只读,当切换用户为user1后,用户user1的用户组为group1,那么用户user1对该文件只读,若使用vi对该文件进行编辑会有报错提示这是一个只读文件。当切换用户为user2后,用户user2不属于用户组group1,对该文件属于其他用户,其他用户对该文件没有任何权限。

image-20230325170816776

注意:当用户所属组对某个文件有权限,但该文件的属主用户是属于这个用户组的,如果该用户对这个文件没有权限,那么该文件是以用户的权限为准。就是Hello.java的属主是用户user1,且user1是属于group1用户组的,group1用户组对这个文件有读写权限,但user1用户对这个文件没有读写权限,user1用户在访问这个文件时,以user1的权限为准:

image-20230325171758496

root用户,这个超级用户,不受权限控制,在Linux下可以做任何事

标签:文件,user1,更改,用户,group1,Linux,第三课,权限,属性
From: https://www.cnblogs.com/XQ-Yang/p/17261957.html

相关文章

  • Linux&Nginx16_Nginx负载均衡6
    一、负载均衡概述在网站创立初期,我们一般都使用单台机器对外提供集中式服务。随着业务量的增大,我们一台服务器不够用,此时就会把多台机器组成一个集群对外提供服务,但是,我......
  • Linux常用软件安装
    Linux常用软件安装系统centos7华为云服务器sudouname--m查看系统版本Jdk安装查看卸载jdk版本1查看Linux系统是否有自带的jdk或者是安装成功了没有java-ve......
  • Linux 下安装 node.js
    这里介绍两种安装方式:编译安装和使用编译后的安装包安装。https://nodejs.org/dist安装目录:/usr/local一、使用编译安装包安装1、进入安装目录:cd/usr/local2、下载......
  • Linux 中PATH、CLASSPATH等环境变量配置详解
    #setjavaenvironmentexportJAVA_HOME=/usr/lib/jvm/jdk1.7.0_79exportCLASSPATH=.:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jarexportPATH=$JAVA_HOME/b......
  • Linux基础第四章:用户账户与文件、目录的权限和归属
    一、用户账户1、账户类型①超级管理员:最高权限拥有者,uid=0的用户,默认是root。②普通用户:有一定权限的用户,但是权限受限制。③系统(程序)用户:不是给人用的,是给程序用的,无......
  • Linux安装
    Linux安装*物理机安装:直接将操作系统安装到服务器硬件上*虚拟机安装:通过虚拟机软件安装虚拟机(VirtualMachine):指通过软件模拟的具有完整硬件系统功能、运行在完全隔......
  • Linux基础第二章文件压缩归档及文本编辑和vi编辑器
    一、文件压缩及归档1、文件压缩gzip和bzip命令用于文件压缩,但是缺陷是压缩完成后源文件消失所以一般不用。命令格式是:gzip或者bzip +0-9的压缩等级(数字越大压缩级别......
  • Linux下JDK和JMeter部署及使用
    一、在Linux下安装JDK并配置环境变量1、下载JDKJDK8下载地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html2、rz命令上传到服务器......
  • python学习者的专属linux教程
    Linux绝对和相对路径绝对路径:以根目录为起点的路径相对路径:不是以/这个根目录为源头划分的xshell快捷键:ctrl+l清屏ctrl+d退出登录ctrl+shift+......
  • linux 删除rpm安装的jdk,修改软连接
    由于rpm安装的java使得maven读取jdk环境变量出错NB:JAVA_HOMEshouldpointtoaJDKnotaJRE。弄了半天无果,索性删除所有jdk文件重新安装 #查看Java版本java-ve......