提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一.表示方法
首先我们打开xshell,先进入根目录,然后在命令行里输入ll(ls -l),以此显示当前目录下所有文件和目录的信息:
红色框框里,从左到右的部分依次表示:文件拥有者,文件所属组,文件的大小(字节),创建/修改时间,文件名
蓝色框框里面就是根目录下面每个目录/文件的权限,但是对于这个乱七八糟的字符串,我们还要将其细分成下面这个样子:
从左到右这4个部分依次表示:文件类型、拥有者的权限、所有者权限、其他人的权限
首先开头的这个字母表示着这个东西的类型,具体信息可以看下面这个表格:
字母 | - | b | c | d | p | s | l |
---|---|---|---|---|---|---|---|
类型 | 普通文件 | 磁盘之类的块设备 | 字符设备,磁盘或显示器 | 目录 | 管道文件 | 网络socket文件 | 链接文件 |
r、w、x这三个字母分别代表"可读"、“可写”、“可执行”:
如果r本应处在的位置上是个"-",代表对应的用户/组不具有“读”的权限
去除第一个字母以后分成的三组,还是依次对应"拥有者、所属组、其他"所拥有的权限
当然除了字符表示法以外还有数字表示法:
举个例子,下面我创造了一个叫public的目录,然后用蓝色框框中的指令,让所有用户都拥有rwx的权限:
蓝框里的指令等同于chmod a+rwx public
二.目录的权限
这是比较容易弄混的一个点,
项目 | 权限 |
---|---|
r | 查看当前目录下的文件名和文件属性 |
w | 在当前目录下创建新文件 |
x | 进入一个目录 |
三.权限掩码umask
首先我们要说明一下,
起始权限是系统设定的,可能因为系统的原因有所不同,而我们最终看到的权限,是起始权限减去umask得到的
我们在刚才的public目录中测试一下:
我刚才刚刚创建的这个名为test的文件的权限,用数字表示就是644,这个664就是我们创建文件时的默认权限
然后我们得知umask为0022,逆推可以得知test的起始权限其实是666;
如果想要修改umask的值为x的话,输入 "umask x"即可
四.粘滞位
以后用linux的时候,会有一些共享目录供所有的普通用户存放数据,向上面我创建的那个777的目录public就是这样一个目录;
既然所有普通用户都要往里存放数据,那么我必须开放r权限对吧,但是这样的话,需要防止普通用户删掉其他用户存放在这个目录里面的数据-这就是粘滞位存在的意义,这其实就是粘滞位的使用场景;
只要我们输入这样一条命令,为public目录添加粘滞位,问题就解决了: