"LINUX与UNIX SHELL 编程指南"
在LINUX与UNIX系统中,文件的安全性和权限管理是至关重要的。本章主要探讨了如何确保文件和目录的安全,包括文件和目录的权限设置、特殊权限如suid/guid、用户和组管理以及umask和符号链接的使用。
1. 文件和目录的权限
文件和目录都有三个级别的权限:属主(文件创建者)、同组用户和其他用户。每个级别有读(r)、写(w)和执行(x)三种权限。例如,"rwxr-xr-x"表示属主有读写执行权限,同组用户有读执行权限,其他用户只有读执行权限。`ls -l`命令可以查看文件的详细信息,包括权限位。
1.1 文件
文件包含位置、类型、长度、拥有者、访问用户、i节点、修改时间和权限位等信息。文件的权限位决定了不同用户对文件的操作能力。
1.2 文件类型
文件类型包括普通文件、目录、符号链接(软链接)等。`ls -l`输出的第一列会显示文件类型,例如,"-rw-r--r--"表示普通文件,"d"表示目录。
1.3 改变权限位
使用`chmod`命令可以改变文件和目录的权限。有两种模式:符号模式(如u+x)和绝对模式(如755)。符号模式允许增加、减少或删除权限,而绝对模式通过八进制数字设定权限。
1.4 suid/guid
suid(Set User ID)和guid(Set Group ID)是特殊权限,允许普通用户临时获得文件所有者的权限。这对于执行某些需要额外权限的操作(如`passwd`命令更改密码)是必要的。设置suid/guid的例子是将可执行文件的suid位设为1,如`chmod u+s filename`。
1.5 chown和chgrp
`chown`用于改变文件的所有者,`chgrp`用于改变文件所属的组。例如,`chown user filename`将文件`filename`的属主更改为'user',`chgrp group directory`将目录`directory`的所属组改为`group`。
1.6 umask
umask是一个设置默认权限的掩码,它定义了新创建文件和目录的默认权限。例如,umask 022将使得新文件默认权限为644(rw-r--r--),新目录为755(rwxr-xr-x)。了解umask的计算方法和常用值有助于优化权限设置。
1.7 符号链接
符号链接(又称软链接)是一种指向其他文件的特殊文件,类似Windows的快捷方式。使用`ln -s source target`创建符号链接,`source`是源文件,`target`是链接名。符号链接允许创建文件的多个映像,方便管理和访问。
1.8 小结
本章重点讲解了LINUX与UNIX系统中文件安全的基本概念和操作,包括权限的设定、用户和组的管理、以及特殊权限和链接的使用,这些都是日常系统管理中不可或缺的知识点。