1. 文件基本属性
在Linux中,可以使用ll
或ls -l
命令来显示一个目录或文件的属性以及所属的用户和组
如在根目录下:
如上图所示,每列的含义为:
- 第一列表示属性;
- 第二列对于普通文件是链接数,对于目录文件是第一级子目录数;
- 第三列表示所属用户;
- 第四列表示所属组;
- 第五列表示文件大小,单位是字节;
- 第六、七、八列表示最后修改时间;
- 第十列表示文件名
下面对第一列进行详细理解,以Hello.java文件的属性-rw-r--r--
来说,
- 权限显示位一共为10位,分为四段,从第二位算起,每三个一组;
- 第一位代表文件类型(-表示普通文件,d表示目录);
- 第2-4位表示文件所属用户拥有的权限(
rw-
:4+2=6); - 第5-7位表示该用户所属组拥有的权限(
r--
:4); - 第8-10位表示其他用户拥有的权限(
r--
:4);
为什么会有这样的属性呢:
Linux系统是典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限,为了保护系统的安全,Liunx系统对不同的用户访问同一文件(包括目录)的权限做了不同的规定。
在Linux中可以使用一下两个命令来修改文件或目录的所属用户和权限:
- chown(change owner):修改所属用户与组
- chmod(change mode):修改文件的权限
2. 更改文件属性
为了演示效果,先创建用户组group1,之后创建用户user1,并将user1加入用户组group1中,再创建用户user2
2.1 更改文件属组
命令:chgrp [-R] 组名 文件名或目录名
-R表示递归更改文件数组,如更改某个目录的属组时,加上-R参数,那么该目录下的所有文件或目录的属组都会改变
分别将根目录下的Hello.java文件和yxq目录的属组更改为刚创建的group1:
2.2 更改文件属主
命令:chown [-R] 属主名 文件名
、chown [-R] 属主名:属组名 文件名
、
将usr/local/Hello.java文件的属主名改为user2,再将其改为属主名为user1、属组为group1:
2.3 更改文件属性
Linux文件属性有两种设置方式,一种是数字,一种是符号。符号r对应数字4、符号w对应数字2、符号x对应数字1。
2.3.1 数字方式更改
从上面的文件基本属性所讲到的权限共9位,每3位一组,在更改文件属性的时候需要将三个组各自的权限累加,如-rwxrwx---
的为:
- owner = rwx = 4 + 2 + 1 = 7
- group = rwx = 4 + 2 + 1 = 7
- others = --- = 0 + 0 + 0 = 0
所以更改文件属性时,文件的权限数字为770。
命令:chmod [-R] xyz 文件或目录
xyz表示属性数值相加后的表示结果770,-R表示进行递归更改,该目录下的所有目录或文件属性都会更改。
将根目录下的Hello.java文件的属性全改为只可读:
将该文件的属性改为只读后,使用vi对该文件内容进行编辑,在保存时会有如下信息:
将根目录下的自创建的yxq目录及子目录的属性更改为可读可写可执行:
2.3.2 符号方式更改
使用u, g, o来代表三种身份的权限,此为,可以使用a表示全部身份,权限可以写成r, w, x,演示如下:
创建新文件123.cnf,查看该文件的默认属性,之后使用符号方式更改其属性,属主的权限为rwx,属组的权限为rw,其他用户的权限为r。
3. 访问权限演示
将根目录下的Hello.java文件属性改为-rw-r-----,该文件的属主为root用户,拥有对该文件的可读可写权限,属组为group1,权限为只读,当切换用户为user1后,用户user1的用户组为group1,那么用户user1对该文件只读,若使用vi对该文件进行编辑会有报错提示这是一个只读文件。当切换用户为user2后,用户user2不属于用户组group1,对该文件属于其他用户,其他用户对该文件没有任何权限。
注意:当用户所属组对某个文件有权限,但该文件的属主用户是属于这个用户组的,如果该用户对这个文件没有权限,那么该文件是以用户的权限为准。就是Hello.java的属主是用户user1,且user1是属于group1用户组的,group1用户组对这个文件有读写权限,但user1用户对这个文件没有读写权限,user1用户在访问这个文件时,以user1的权限为准:
root用户,这个超级用户,不受权限控制,在Linux下可以做任何事
标签:文件,user1,更改,用户,group1,Linux,第三课,权限,属性 From: https://www.cnblogs.com/XQ-Yang/p/17261957.html