五、临时权限的安全隐患。
临时权限SUID机制虽然可以满足一些日常工作的需要,但是这个机制存在着一定的安全风险。如特权用户将shutdown这个关机命令权限赋予给其他用户的话,则就存在着一定的安全隐患。因为Unix操作系统是一个多用户的操作系统,在同一个时刻允许多个用户登录到操作系统中。如果每个用户都可以使用shutdown命令进行关机的话,而此时其他用户可能正在编辑一个文件或者进行其他操作,则此时就会影响其他用户的正常作业。故对于这些具有临时权限的SUID程序文件系统工程师需要给与特殊的关注。临时权限SUID让用户通过运行一个root用户的文件来拥有本来不具有的权限。作为一个合格的系统工程师,必须跟中所有属于root用户的SUID程序,这些程序有可能被普通用户用来创建文件或者复制文件。
为了保证这个临时权限SUID措施在给系统维护带来方便的同时,不影响Unix系统的安全,笔者有如下两个建议。
一是不要随便通过设置SUID(属主设置位)的方式让普通用户通过运行一个root用户的文件来拥有本来不具有的权限。特别是一些对所有用户都具有影响的命令文件,更加要谨慎。如对于shutdown这中对系统当前登录帐户都会造成不利影响的命令文件,还是掌握在特权用户一个人手中为好。不然的话,因为一个普通用户的不恰当操作,而给其他用户造成不利的影响,那系统工程师就是得不偿失了。故笔者建议,系统工程师这个权限的关口还是要把握住的,不要因为贪图方便而随便把权限下放给其他用户。这是一个很危险的操作。
二是在日常工作中要时常跟踪一下这些文件。如可以利用find命令来查找系统中到底有多少这些文件。利用find命令如果发现显示的权限属性里多了一位八进制数4则表示这文件设置了临时权限suid,unix系统会将4前面的-符号当作其他的任意权限。笔者在这里跟大家分享一个很好的工作技巧。系统工程师可以利用cron等任务调度命令,每隔一段时间运行一次find命令。并把这个命令的结果通过电子邮件发送给系统工程师。如此的话,系统工程师就可以省去每次手工运行这个命令的麻烦事,又可以实时的追踪这些特殊的文件。一举两得,即可以偷懒,又不会误事。
总之,通过设置临时权限SUID,系统工程师确实可以减少很多系统维护的工作量。如用户需要更改密码等等类似的简单工作,就不需要找系统工程师来完成了。但是,系统工程师对于这个临时权限SUID可能带来的安全隐患仍然要深记与心。