让我们用t o u c h命令创建一个文件:
$ touch myfile
现在对该目录使用ls -l命令:
我们已经创建了一个空文件,正如我们所希望的那样,第一个横杠告诉我们该文件是一个普通文件。你将会发现所创建的文件绝大多数都是普通文件或符号链接文件(后面将会出现更多的符号链接文件)。
文件属主权限 组用户权限 其他用户权限
rw- r-- r—
接下来的三个权限位是文件属主所具有的权限;再接下来的三位是与你同组用户所具有的权限,这里是a d m i n组;最后三位是其他用户所具有的权限。在该命令的结果中,我所属于的缺省组也显示了出来。下面是对该文件权限的精确描述:
表1-1 ls -l命令输出的含义
因此,这三组字符(除了第一个字符)分别定义了:
1) 文件属主所拥有的权限。
2) 文件属主缺省组(一个用户可以属于很多的组)所拥有的权限。
3) 系统中其他用户的权限。
在每一组字符中含有三个权限位:
r 读权限
w 写/更改权限
x 执行该脚本或程序的权限
这里我们采用另外一种方式来表示刚才所列出m y f i l e的文件权限:
- r w - r- - r--
文件类型为普通文件 文件属主可以读、写 同组用户可以读 其他用户可以读
你可能已经注意到了,m y f i l e在创建的时候并未给属主赋予执行权限,在用户创建文件时,系统不会自动地设置执行权限位。这是出于加强系统安全的考虑。必须手工修改这一权限位:后面讲到u m a s k命令时,你就会明白为什么没有获得执行权限。然而,你可以针对目录设置执行权限位,但这与文件执行权限位的意义有所不同,这一点我们将在后面讨论。
上面这段关于权限位的内容可能不太好理解,让我们来看几个例子(见表1 - 2 )。
更令人迷惑的是,对于文件属主来说,在只有读权限位被置位的情况下,仍然可以通过文件重定向的方法向该文件写入。过一会儿我们就会看到,能否删除一个文件还依赖于该文件所在目录权限位的设置。
表1-2 文件权限及含义