Linux中的文件属性和权限

2021/5/5 7:29:01

本文主要是介绍Linux中的文件属性和权限,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

        • 前言
    • 一. 用户,用户组和其他人
    • 二. 文件属性
    • 三. 文件(目录)的权限

前言

  我们都知道在Linux中一切皆文件,因此一些有关文件属性和权限的知识点就很重要,也是学习Linux最基本的。这里仅就记录一下自己的一些学习笔记以及一些个人理解,如错误之处,敬请指出。

一. 用户,用户组和其他人

学习Linux文件的权限时,文件的权限往往是针对用户,用户组以及其他人三个概念来讲的,因此在学习文件权限相关问题时有必要先了解下这三个的基本概念。

  • 用户(user):在linux系统中记录有对应登记密码的一个账号
  • 文件拥有者(owner):文件所属者(或者文件创建者)
  • 用户组(group):由多个用户组成的一个组,和我们平时说的一组,二组一样
  • 其他人(others):即不是文件拥有者,也不是用户组的成员,但是是一个用户(账号)

二. 文件属性

在linux输入ls -al或者ls -ls,ls -l均可以查看文件的基本属性。不过ls -al会把所有的文件都列出来,包括隐藏的文件,如下
在这里插入图片描述
图中用红框圈起来的一共有8个,下面从左到右依次来说一下其代表的意思

  • 第一个代表的是文件的类型:‘-’表示普通文件,‘d’表示是一个目录,‘l’表示是一个链接文件,‘b’可供存储的周边设备,‘c’串行端口设备(鼠标,键盘)
  • 第二个代表的文件的相关权限:前三个代表文件所属者(owner)对该文件的权限,中间三个代表用户组队(group)该文件的权限,后三个代表其他用户(otehers)对该文件的权限
  • 第三个代表有多少个文件名链接到此节点
  • 第四个代表该文件所属者
  • 第五个代表该文件所在的用户组
  • 第六个代表该文件的大小,默认是Bytes
  • 第七个代表该文件最后修改的时间
  • 第八个显示文件名字,‘.’表示隐藏文件

三. 文件(目录)的权限

1. 文件的权限
文件的权限是针对文件拥有者,用户组和其他用户来说的,每个对象都有对应的权限,如下

  • 文件拥有者(owner):rwx
  • 用户组(group):rwx
  • 其他用户(others):rwx
    其中r代表可读(read),w代表可写(write),x代表可执行(execute)

其中,权限对于文件而言,rwx的意义如下:

  • r:可以读取到该文件里面的内容,如文字内容
  • w:可以编辑,新增或是修改该文件的内容
  • x:可以被执行

而权限对于目录来说,意义如下:

  • r:具有读取目录结构列表的权限,表示可以查询该目录下的文件名数据,如用ls显示该目录下的文件
  • w:具有可以改动该目录结构列表的权限,如新建文件目录,删除文件目录,修改文件目录的名字,移动文件目录的位置
  • x:代表用户能否进入该目录成为工作目录,如没有x权限时,就不能用cd命令切换到该目录下

2. 修改文件属性
2.1 修改文件所属者和所在用户组
2.1.1修改文件所在用户组:chgrp(change group),格式如下:

  • chgrp [-R] groupname 文件名或者目录名

  • R:进行递归修改,连同该目录下的所有文件,目录一起修改

  • 前提:新的组名要在/etc/group中存在

    如下,将在test组中的test_py.py文件更换到anxiaochong组中
    在这里插入图片描述
    2.1.2 修改文件拥有者:chown(change owner),格式如下

  • chown [-R] 账号名称 文件或目录 或者 chown [-R] 账号名称:用户组名称 文件或者目录

  • R:进行递归修改,连同该目录下的所有文件,目录一起修改

  • 前提:新的账号名称要在/etc/passwd中存在

如下,修改文件test_py.py的拥有者未root
在这里插入图片描述

3.修改文件目录的权限
3.1修改文件目录权限命令:chmod,格式如下

  • chmod [-R] xyz 文件或目录
  • [R]:进行递归修改,连同该目录下的所有文件,目录一起修改
  • xyz:数字代表权限

    其中xyz对应的权限如下
r:4
w:2
x:1

在这里插入图片描述
如在上面的图中,test.py文件对应文件拥有者,用户组和其他用户的权限如下

文件拥有者(user):rw-=4+2+0=6
用户组(group:rw-=4+2+0=6
其他用户(others):r--=4+0+0=4

现在修改test.py文件的权限为文件拥有者rwx,用户组rwx,其他用户为rx
在这里插入图片描述
值的注意的是,每个对象对应的文件权限位置不会变,没有权限时用‘-’代替

3.2 符号类型修改文件权限
Linux中修改文件目录权限的有两种方法,上面的是数字类型修改权限,还有一种就是下面要讲的符号类型修改文件目录权限。

在这里插入图片描述
符号类型修改文件权限格式如下

chmod [ugoa][+-=][rwx] 文件名或者目录
#这里的[]不是代表可选可不选,这里三个都必须选择,这里加[]只是为了区分不同字符类别

例1 如修改文件test.py的权限为rwxr–r--
在这里插入图片描述
例2 给文件test.py的用户组,其他用户加上x权限
在这里插入图片描述
例3 把文件test.py文件的文件拥有者,用户组和其他用户的x(可执行)权限移除掉
在这里插入图片描述
注意:以上有关文件目录属性修改,权限修改均需要root权限,如果不是root用户,则可使用sudo



这篇关于Linux中的文件属性和权限的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程