前言
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件的权限做了不同的规定。
正文
这篇文章我们就来看一下linux中文件的基本属性以及如何修改它的属性。
在Linux中我们通常使用下面两个命令来修改文件或目录的所属用户与权限:
- chown(change owner):修改所属用户与组。
- chmod(change mode):修改用户的权限。
查看文件属性
在Linux中我们使用ll或者ls -l命令来查看当前目录下文件的基本信息,如下:
首先我们要弄明白每一行代表什么意思,每一行的含义如下:
这里我们来简单介绍一下,从左到右分别是:
- 第一块的10个字符表示文件的类型以及权限,具体含义如图:
第1个字符是文件类型,这里我们需要知道d表示目录文件,-表示文件,l表示为链接文件(link file);
在Linux中每个文件它都有一个特定的所有者,也就是对该文件具有所有权的用户。同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可分为所属组的同组用户和其他用户,因此Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
其中3个一组,分别表示属主权限、属组权限和其他用户权限,其中读、写和执行的权限分别用r、w和x表示,没有对应权限的则用-来表示,比如下面是bin文件的信息:
drwxr-xr-x 2 root root 4096 8月 24 07:27 bin/
从这里我们可知,bin文件的属主权限是可读、可写和可执行,同组的其他用户是可读、不可写和可执行,而其他用户权限也是可读、不可写和可执行。
-
第二块数字信息就是该文件的硬链接的数量,关于这部分知识可以查看文章# Linux基础学习 | 软链接和硬链接:
-
后面信息就比较好理解了,分别表示该文件的所有者、所有者的组、文件大小、上一次修改时间以及文件名。
更改文件属性
根据上面文件的属性,我们更改文件属性也是修改这些,这里主要涉及3个命令:
1.** chgrp:更改文件属组**,使用如下:
chgrp [-R] 属组名 文件名
这里-R就是递归更改文件属组,加上该参数后,该目录下的所有文件属组都会更改。
这里要注意执行该命令的用户有没有权限,一般使用root用户来进行操作。
- chown:更改文件属主,也可以同时更改文件属组,这个命令使用较多,语法如下:
chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
- 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记录贴