将设备处理成文件,使得UNIX程序独立于设备,即程序不必一定要了解正 使用的设备的任何特性,存取设备也不需要记录长度,块大小,传输速度,网络 协议等这样一些信息,所有烦人的细节由设备驱动程序去关心考虑,要存取设 备,程序只须打开设备文件,然后作为普通的UNIX文件来使用. 从安全的观点来看这样处理很好,因为任何设备上进行的I/O操作只经过 了少量的渠道(即设备文件).用户不能直接地存取设备.所以如果正确地设置 了磁盘分区的存取许可,用户就只能通过UNIX文件系统存取磁盘.文件系统有 内部安全机制(文件许可).不幸的是,如果磁盘分区设备得不正确,任何用户都 能够写一个程序读磁盘分区中的每个文件,作法很简单:读一i节点,然后以磁 盘地址表中块号出现的顺序,依次读这些块号指出的存有文件内容的块.故除 了root以外,决不要使盘分区对任何人可写.因为所有者,文件存取许可方式这 样一些信息存放于i节点中,任何人只要具有已安装分区的写许可,就能设置任 何文件的SUID许可,而不管文件的所有者是谁,也不必用chmod()命令,还可避 过系统建立的安全检查. 以上所述对内存文件mem,kmem和对换文件swap也是一样的.这些文件含有 用户信息,一个“耐心“的程序可以将用户信息提取出来. 要避免磁盘分区(以及其它设备)可读可写,应当在建立设备文件前先用 umask命令设置文件建立屏蔽值. 一般情况下,UNIX系统上的终端口对任何人都是可写的,从而使用户可以 用write命令发送信息.虽然write命令易引起安全方面的问题,但大多数用户 觉得用write得到其他用户的信息很方便,所以系统将终端设备的存取许可设 置成对所有用户可写. /dev目录应当是755存取许可方式,且属root所有. 不允许除root外的任何用户读或写盘分区的原则有一例外,即一些程序 (通常是数据库系统)要求对磁盘分区直接存取,解决这个问题的经验的盘分区 应当由这种程序专用(不安装文件系统),而且应当告知使用这种程序的用户, 文件安全保护将由程序自己而不是UNIX