Linux文件系统、用户及权限

在Linux系统中,所有的设备、目录都统称为文件。

文件系统概述

文件系统时操作系统用来管理和存储文件信息的一种管理系统,它剋为用户建立文件,并可以存储、读取、修改文件等。

文件类型

Linux中的文件可分为普通文件目录文件块设备文件字符设备文件套接字文件管道文件链接文件7种类型。

  1. 普通文件
    echotouchcpcat等命令创建的文件都属于普通文件,普通文件又分为以下三种。

    • 纯文本文件,以ASCII码形式存储在计算机中,从文件中可以直接读取到数据。
      可以通过file查看文件类型
      [root@test ~]# file abc.txt
      
      得到反馈结果 abc.txt:ASCII text
    • 二进制文件,以文本的二进制形式存储在计算机中。
      Linux系统中的二进制文件很多,如系统自带的命令,如cat,也可以通过file命令查看。
      [root@test ~]# file -L /usr/bin/cat
      
    • 数据文件,有些程序在运行的过程中会读取某些特定格式的文件,这些特定的文件被称为数据文件。例如,在用户登陆时,Linux系统会将登陆的数据记录在/var/log/wtmp文件内,该文件就是一个数据文件,可以通过file命令查看该文件类型。
      [root@test ~]# file /var/log/wtmp
      
  2. 目录文件
    目录文件指的就是Linux下的目录,如根目录、/home目录、/usr目录等。
    可以使用命令ls -ld来查看是否目录文件。
    Linux中的.表示当前目录,使用命令ls -ld显示结果的第一列以d开头就表示目录文件。

  3. 块设备文件
    块设备文件时一些存储数据以供系统访问的接口设备,如磁盘、软盘等。

  4. 字符设备文件
    字符设备文件时一些串行端口的接口设备,如键盘、鼠标等。

  5. 套接字文件
    套接字文件也称为数据接口文件,通常用于网络上数据的连接。
    我们可以启动一个程序来监听客户端的请求,而客户端就可以通过套接字文件来进行数据通信。

  6. 管道文件
    管道是一种特殊的文件类型,主要用于解决多个程序同时访问一个文件造成的错误问题。

  7. 链接文件
    Linux系统中的链接文件分为两种:硬链接文件与软连接文件。

    • 硬连接文件时指通过索引节点来进行连接。在Linux系统中,多个文件同时指向同一个索引节点,这种情况下的文件被称为硬链接文件。
    • 软链接文件,也称为符号链接,与Windows系统中的快捷方式类似。实际上它时一个文本文件,文本文件里存储着指向源文件链接的位置信息。

    Linux系统中链接文件的创建命令为ln,语法格式:

    ln 源文件名 链接文件名        #创建硬链接文件
    ln -s 源文件名 链接文件名     #创建软链接文件
    

文件属性

在Linux系统中,每一个文件都有自己的属性信息。
文件的属性包括索引节点、文件类型、权限、文件的所有者与所属组、文件大小、文件名或目录名、硬链接数量等信息。
在Linux系统中,可以使用ls -li命令来查看文件属性信息。
从命令的结果来看,一个完整的属性信息共有9个部分:

  1. inode 索引节点号。
  2. 文件类型(-)。
    • - 代表普通文件
    • d 代表目录文件
    • b 代表块设备文件
    • c 代表字符设备文件
    • s 代表套接字文件
    • p 代表管道文件
    • l 代表链接文件
  3. 权限信息(---------)。 #后面章节介绍
  4. 硬链接数量。
  5. 文件的所有者。
  6. 文件的所属组。
  7. 文件大小,单位字节。
  8. 最近修改时间。
  9. 文件名或目录名。

在Linux系统中,存储设备或分区被格式化文件系统后,一般会分成两个部分。
第一个部分为inode,第二个部分时block。
inode存储文件的属性信息,每个文件都有其对应的inode号,如同我们的身份证号一样,具有唯一性。
操作系统识别文件其实就是识别inode节点号,因此inode号也可以用来区分不同的文件。


用户与用户组

在Linux系统中,用户是分角色的,用户的角色由UID和GID来辨别,即操作系统识别的是用户的UID与GID,而非用户名。

用户分类

  1. 超级系统管理员
    在Linux系统中,默认超级管理员就是root用户,可以使用head -l /etc/passwd命令来查看。
    输入命令后获得结果,结果包括以分割的7列信息。
    其中第三列和第四列就是root用户的UID和GID,因此可以得知,Linux的超级管理员的UIR和GID都为0。
  2. 系统用户
    在Linux系统中,系统用户又被称为虚拟用户。这些用户是安装操作系统时就默认存在的,且不可登陆到系统的用户,他们的UID和GID范围都是1~499。
  3. 普通用户
    在Linux系统中,还有一种用户是管理员用户创建的,我们称之为普通用户。
    普通用户的UID和GID范围都是500~65535,权限很小,只能操作自己的家目录中的文件及子目录。

用户组

在Linux系统中的每一个用户都有一个用户组,系统可以对一个用户组中的所有用户进行统一管理。
用户组的管理包含对用户组的添加、删除和修改。
用户组的添加、删除和修改实际是对/etc/group文件的更新操作。
示例:

  1. 添加一个名为mingong的用户组。
    [root@test ~]# groupadd mingong
    
  2. 删除名为mingong的用户组。
    [root@test ~]# groupdel mingong
    
  3. 修改名为mingong用户组的GID为8899。
    [root@test ~]# groupmod -g mingong
    

用户权限

默认权限

在Linux系统中,创建完成的文件或目录自己会产生相应的权限,即系统的默认权限。
分别使用root用户与普通用户,创建一个名为test001.txt的文件和一个名为test001的目录,创建完以后使用ls -l命令查看。
结果中可以得出以下结论

  • root用户创建的文件默认权限为644,目录的默认权限是755。
  • 普通用户创建的文件默认权限为664,目录的默认权限是775。

关于权限数值的意思:
所有权限都由三组符号表示,每组三个字符,一共9个字符,就跟在文件类型的后面。
每组里面都可以出现r、w、x三个字符,r字符等于4,w字符等于2,x字符等于1。
所以,644等同于rw-r--r--,664等同于rw-rw-r--


umask值与默认权限的关系

在Linux系统中,这些默认分配的权限其实全部由umask值来决定,每个用户的umask值不相同,因此它所创建的文件和目录的默认权限也不同。
Linux系统规定如下权限值:

  • 文件的权限值666,默认权限=权限值-umask值。
  • 目录的权限值是777,默认权限=权限值-umask值。

如何修改默认权限

从上面的介绍中也能得出结论,修改默认权限也就是修改用户的umask值。
修改umask值可以使用umask n命令,n的取值范围为000~777。
示例:

  1. 将root用户的umask值修改为044。
    [root@test ~]# umask 044
    
  2. 将root用户的umask值修改为023.
    [root@test ~]# umask 023
    
    上述修改后,会发现文件的默认权限应该是666-023=643,这样就出现计算结果与实际结果不一样的现象。
    因此,当umask值部分或全部为奇数时,目录的默认权限不变,文件的默认权限是在出现奇数位的计算结果上加1。

文件权限

文件权限分类

在Linux系统中,文件的权限分为以下3种。

  1. 读权限,用字母w表示,转换成数字是4。
  2. 写前线,用字母r表示,转换成数字是2。
  3. 执行权限,用字母x表示,转换成数字是1。

如何修改权限

在Linux系统中,权限列中3位一组,一共3组,分别代表用户、组、其他人的权限。
修改权限可以是对某一组或全部组进行修改。

  1. 命令格式
    修改权限的命令格式如下:
    chmod [选项] [文件名或目录名]               #修改文件或目录的权限
    chown [选项] [用户名] [文件名或目录名]       #修改文件或目录的属主
    chown [选项] [组名] [文件名或目录名]        #修改文件或目录的属组
    chattr +i/-i [文件名或目录名]               #锁定/取消锁定文件或目录
    
    锁定/取消锁定是文件的一种特殊权限,锁定后的文件不可删除、新增或清空。可使用lsattr命令查看文件是否有这种特殊权限,命令格式如下。
    lsattr [文件名]
    
  2. 修改权限示例
    • 将文件abc.txt的属主、属组的权限修改为可读、可写、可执行,其他人的权限不变。
      [root@test ~]# chmod 774 abc.txt
      
    • 将abc.txt的属主与属组全部修改成mingong。
      [root@test ~]# chown mingong.mingong abc.txt
      
    • 将abc.txt文件锁定,并测试是否可写、可删除。
      [root@test ~]# chattr +i abc.txt
      [root@test ~]# rm -f abc.txt
      [root@test ~]# echo "hehehehe">>abc.txt
      
    • 查看文件abc.txt是否具有特殊权限。
      [root@test ~]# lsattr abc.txt
      
      结果中如果只有一个字母i,表示它是不可认一更改的文件或目录,即该文件或目录被锁定。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值