1.8.2 常用的umask值
表1 - 9列出了一些u m a s k值及它们所对应的目录和文件权限。
表1-9 常用的u m a s k值及对应的文件和目录权限
u m a s k值目录文件
0 2 2 7 5 5 6 4 4
0 2 7 7 5 0 6 4 0
0 0 2 7 7 5 6 6 4
0 0 6 7 7 1 6 6 0
0 0 7 7 7 0 6 6 0
如果想知道当前的umask 值,可以使用u m a s k命令:
第1章文件安全与权限11
下载
如果想要改变u m a s k值,只要使用u m a s k命令设置一个新的值即可:
$ umask 002
确认一下系统是否已经接受了新的u m a s k值:
在使用u m a s k命令之前一定要弄清楚到底希望具有什么样的文件/目录创建缺省权限。否
则可能会得到一些非常奇怪的结果;例如,如果将u m a s k值设置为6 0 0,那么所创建的文件/目
录的缺省权限就是0 6 6!
1.9 符号链接
存在两种不同类型的链接,软链接和硬链接,这里我们只讨论软链接。软链接实际上就
是一个指向文件的指针。你将会发现这种软链接使用起来非常方便。
1.9.1 使用软链接来保存文件的多个映像
下面我们就解释一下符号链接是怎么回事。比方说在/ u s r / l o c a l / a d m i n / s a l e s目录下有一个
含有销售信息的文件,销售部门的每一个人都想看这份文件。你可以在每一位用户的$ H O M E
目录下建立一个指向该文件的链接,而不是在每个目录下拷贝一份。这样当需要更改这一文
件时,只需改变一个源文件即可。每个销售$ H O M E目录中的链接可以起任何名字,不必和源
文件一致。
如果有很多子目录,而进入这些目录很费时间,在这种情况下链接也非常有用。可以针
对$ H O M E目录下的一个很深的子目录创建一个链接。还有,比如在安装一个应用程序时,它
的日志被保存到/ u s r / o p t / a p p / l o g目录下,如果想把它保存在另外一个你认为更方便目录下,可
以建立一个指向该目录的链接。
该命令的一般形式为:
ln [-s] source_path target_path
其中的路径可以是目录也可以是文件。让我们来看几个例子。
1.9.2 符号链接举例
假如系统中有4 0个销售和管理用户,销售用户使用一个销售应用程序,而管理用户使用
一个管理应用程序。我作为系统管理员该怎么做呢?首先删除它们各自$ H O M E目录下的所
有. p r o f i l e文件。然后在/ u s r / l o c a l / m e n u s /目录下创建两个p r o f i l e文件,一个是s a l e s . p r o f i l e,一
个是a d m i n . p r o f i l e,它们分别为销售和管理人员提供了所需的环境,并引导他们进入相应的应
用程序。现在我在所有销售人员的$ H O M E目录下分别创建一个指向s a l e s . p r o f i l e的链接,在所
有管理人员的$ H O M E目录下分别创建一个指向a d m i n . p r o f i l e文件的链接。注意,不必在上面
命令格式中的t a rg e t _ p a t h端创建相应文件,如果不存在这样一个文件, l n命令会自动创建该文
12 第一部分shell
下载
件。下面就是我对销售人员m a t t y所做的操作。
(你所看到的可能会与此稍有差别)。
这就是我所要做的全部工作;对于管理人员也是如此。而且如果需要作任何修改的话,
只要改变销售和管理人员的p r o f i l e文件即可,而不必对4 0个用户逐一进行修改。
下面是另外一个例子。我所管理的系统中有一个网络监视器,它将日志写在/ u s r / o p t /
m o n i t o r / r e g s t a r目录下,但其他所有的日志都保存在/ v a r / a d m / l o g s目录下,这样只需在该目录
下建立一个指向原有文件的链接就可以在一个地方看所有的日志了,而不必花费很多时间分
别进入各个相应的目录。下面就是所用的链接命令:
$ ln -s /usr/opt/monitor/regstar/reg.log /var/adm/logs/monitor.log
如果链接太多的话,可以删掉一些,不过切记不要删除源文件。
不管是否在同一个文件系统中,都可以创建链接。在创建链接的时候,不要忘记在原有
目录设置执行权限。链接一旦创建,链接目录将具有权限7 7 7或rwx rwx rwx,但是实际的原
有文件的权限并未改变。
在新安装的系统上,通常要进行这样的操作,在/ v a r目录中创建一个指向/ t m p目录的链接,
因为有些应用程序认为存在/ v a r / t m p目录(然而它实际上并不存在),有些应用程序在该目录中
保存一些临时文件。为了使所有的临时文件都放在一个地方,可以使用l n命令在/ v a r目录下建
立一个指向/ t m p目录的链接。
现在如果我在/ v a r目录中列文件,就能够看到刚才建立的链接:
1.10 小结
本章介绍了一些有关文件安全的基本概念。如果这些命令能够使用得当而且使用得比较
谨慎,应该不会有什么问题。手指轻轻一敲就有可能输入chmod -R这样的命令,它将改变整
个文件系统的权限,如果没有做备份的话,没有几年的时间恐怕是无法恢复了,所以在输入
这些命令时,千万不要在手指上贴膏药!
是否使用设置了s u i d的脚本完全取决于你自己。如果使用的话,一定要确保能够监控它的
使用,而且不要以根用户身份设置s u i d。
