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