linux下文件权限及属性
在linux中,关于文件的权限所涉及的内容还是不少的,今天打算系统全面的介绍下。
文件权限与属性
首先来看看所有者,所属组以及其他人的概念。
在linux中,每一个用户都会属于一个组,不允许单独与组外。
- 所有者,当用户新建了一个文件时,默认该文件所有者即为该用户
- 所属组,当用户新建了一个文件时,这个文件的所在组就是该用户所在的组
- 其他人,不输入所有者及所属组的用户即为其他人
文件属性
我们用ls来查看下文件的属性吧。
# ls -l 1.php
-rw-r--r-- 1 root root 106 Apr 15 10:30 1.php
|||||||||| | | | | | |
12345678910 11 12 13 14 15 16
参数 | 含义 |
---|---|
1 | 表示文件类型,-表示为文件。d表示为目录。b表示为块设备。 |
2 | 234分为一组表示所有者权限,目前所有者权限为rw |
5 | 567分为一组表示所属组权限,目前所属组权限为r |
8 | 8、9、10分为一组表示其他人权限,目前其他人权限为r |
11 | 表示链接此文件的数量 |
12 | 表示此文件的所有者是root |
13 | 表示此文件的所属组是root |
14 | 表示文件大小,单位为字节 |
15 | 表示文件最后修改时间 |
16 | 表示该文件名称 |
修改文件属性
下面将介绍3个命令
- chmod 改变文件或目录的权限
- chown 改变文件所有者
- chgrp 改变文件所属组
首先新建目录和文件
# mkdir study_file
# echo '学习使用chmod、chown及chgrp' > study_file/1.txt # 创建文件
改变文件所有者
# chown www study_file/1.txt #改变文件所有者
# ll study_file/1.txt
-rw-r--r-- 1 www root 34 5月 5 12:22 study_file/1.txt
同时改变所属组和所有者
# chown www:www study_file/1.txt #同时改变文件所有者及所属组
# ll study_file/1.txt
-rw-r--r-- 1 www www 34 5月 5 12:22 study_file/1.txt
递归修改所有者及所属组
# touch study_file/2.txt
# touch study_file/3.txt
# chown -R www:www study_file/ #递归修改
# ll study_file/
总用量 4
-rw-r--r-- 1 www www 34 5月 5 12:22 1.txt
-rw-r--r-- 1 www www 0 5月 5 13:13 2.txt
-rw-r--r-- 1 www www 0 5月 5 13:13 3.txt
使用chgrp改变所属组
# ls -d study_file/ -l
drwxr-xr-x 2 www www 4096 5月 5 13:13 study_file/
# chgrp root study_file/
# ls -d study_file/ -l
drwxr-xr-x 2 www root 4096 5月 5 13:13 study_file/
使用chmod改变文件权限,修改权限的方法可以是数字方式,也可以是字母方式。一般我们习惯使用数字方式来设置权限。
# chown -R root:root study_file/
# chmod 700 study_file/ #数字方法设置权限
# ll -d study_file/
drwx------ 2 root root 4096 5月 5 13:13 study_file/
# chmod u=rwx,g=r,o=r 1.txt
# chmod a-x 1.txt
# chmod 600 *.txt
# ll
总用量 4
-rw------- 1 root root 34 5月 5 12:22 1.txt
-rw------- 1 root root 0 5月 5 13:13 2.txt
-rw------- 1 root root 0 5月 5 13:13 3.txt
目录与文件权限的意义
文件类型 | 权限 | 意义 |
---|---|---|
file | r | cat、less、more等 |
file | w | vim等 |
file | x | 执行权限 |
dir | r | ls |
dir | w | touch、rm、cp、mv等 |
dir | x | cd |
文件默认权限
当我们创建了一个新文件后,一般新文件的权限是rw-r–r–,如果新创建一个目录后,目录的权限为rwx-r-xr-x。这就是文件的默认权限,查看默认权限的方法是使用umask.
# umask -S
u=rwx,g=rx,o=rx
默认权限减去x即为文件的默认权限。
修改默认权限的方法也非常简答,还是使用umask命令
umask 0770