Linux基础学习 | 文件基本属性

2,520 阅读4分钟

前言

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

正文

这篇文章我们就来看一下linux中文件的基本属性以及如何修改它的属性。

在Linux中我们通常使用下面两个命令来修改文件或目录的所属用户与权限:

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

查看文件属性

在Linux中我们使用ll或者ls -l命令来查看当前目录下文件的基本信息,如下:

image.png

首先我们要弄明白每一行代表什么意思,每一行的含义如下:

image.png

这里我们来简单介绍一下,从左到右分别是:

  1. 第一块的10个字符表示文件的类型以及权限,具体含义如图:

image.png

第1个字符是文件类型,这里我们需要知道d表示目录文件-表示文件l表示为链接文件(link file)

在Linux中每个文件它都有一个特定的所有者,也就是对该文件具有所有权的用户。同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可分为所属组的同组用户和其他用户,因此Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

其中3个一组,分别表示属主权限、属组权限和其他用户权限,其中读、写和执行的权限分别用r、w和x表示,没有对应权限的则用-来表示,比如下面是bin文件的信息:

drwxr-xr-x   2 root root  4096 824 07:27 bin/

从这里我们可知,bin文件的属主权限是可读、可写和可执行,同组的其他用户是可读、不可写和可执行,而其他用户权限也是可读、不可写和可执行。

  1. 第二块数字信息就是该文件的硬链接的数量,关于这部分知识可以查看文章# Linux基础学习 | 软链接和硬链接:

  2. 后面信息就比较好理解了,分别表示该文件的所有者、所有者的组、文件大小、上一次修改时间以及文件名。

更改文件属性

根据上面文件的属性,我们更改文件属性也是修改这些,这里主要涉及3个命令:

1.** chgrp:更改文件属组**,使用如下:

chgrp [-R] 属组名 文件名

这里-R就是递归更改文件属组,加上该参数后,该目录下的所有文件属组都会更改。

这里要注意执行该命令的用户有没有权限,一般使用root用户来进行操作。

  1. chown:更改文件属主,也可以同时更改文件属组,这个命令使用较多,语法如下:
chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
  1. chmod:更改文件的9个属性,这个命令使用的非常多。Linux文件属性有俩种设置方法,一种是数字,一种是符号。

数字其实非常简单,就是把r=4、w=2和x=1给加起来,比如如下命令:

chmod 754 test

其中754也就等于(4+2+1,4+1,4),即属主、属组和其他用户的权限分别为rwx、rx和r。

除了使用数字,还可以使用符号,使用符号需要如下简写:

含义简写
user:所属用户u
group:所属组g
others:其他用户o
all:所有用户a
加上权限+
出去权限-
设定权限=

了解了上面简写后,我们就可以组合起来使用,常见使用如下:

chmod a+x test   //给test的所有用户设置可执行权限
chmod u=rwx,g=rx,o=r test  //分别设置权限
chmod o-r test //移除其他用户的可读权限

总结

本篇文章主要介绍了文件的基本属性以及如何修改基本属性,尤其是chmod等几个命令,要熟练使用。

笔者水平有限,文中有问题,欢迎指正。最后记录一下Flag。# 一个Android开发的学习Flag记录贴