Unix系统是一个比较完善的多用户操作系统。多个用户可以在同一个Unix系统上进行各自的操作,而不会发生相互的干扰。不过为了提高Unix系统多用户操作的安全性,Unix工程师仍然要采取一些必要的措施。
一、只允许特定的用户才能够关机或者重新启动操作系统。
当有多个用户在Unix系统上进行操作的时候,如果其中某个用户心血来潮把Unix操作系统关机或者重新启动的话,那么对于其他用户来说就会造成一个致命的打击。为此通常情况下,Unix系统工程师最好能够限制只有特定的用户才能够重新启动Unix操作系统或者进行关机操作。当某个用户因为特定的原因需要重新启动Unix操作系统的话,必须汇报给系统工程师或者其他特定的用户,让它来查看其他用户的现有活动并判断能否重新启动操作系统。
通常情下,关闭Unix系统或者重新启动这是超级用户的特权。这跟Windows操作系统有比较大的差异。虽然说系统工程师通常不会把root超级用户的密码告知给其他用户,但是往往系统工程师还是希望有一个独立的帐号来管理Unix操作系统的开关机以及重新启动。特别是把Unix操作系统当作服务器的话,更有必要设置一个独立的帐号来进行管理。在Unix系统中为了设置一个账户具有开关机的权利,没有在Windows操作系统中那么简单,只需要把用户加入管理组即可。在Unix要创建一个账户其具有重新启动或者关机权利,操作上会稍微麻烦一点。一般来说,通过两个步骤基本上可以搞定。
第一步:先创建一个普通用户,并赋予其路径、命令等相关的参数。如笔者就先通过useradd命令创建一个普通用户。具体命令如下:
Useradd –u 120 –g group –s /bin/sh –d /home/shut –m shut(或者reboot) 。
这个命令主要用来创建一个偶同的用户。对于这个命令的参数笔者想不用再多过多的说明了。这里需要强调的一点是,在使用Useradd命令增加用户的时候,不能够直接把用户的UID设置为0(超级用户的Uid)。因为Unix系统不允许重复使用超级用户的UID。
第二步:赋予其重新启动或者关机的权限。由于关机或者重新启动是超级用户的特权,为此这个用户建立后还没有关机的权限。此时需要系统工程师更改相关的文件,让这个用户具有这方面的权限。如系统工程师可以修改/etc/passwd文件,找到刚才建立的用户,并把这个用户的UID设置为0即可。此时因为用户的UID为0,故其就有超级用户的特权。另外需要注意的是,有时候系统工程师出于安全的考虑,可能希望这个用户只具有关机或者重新启动操作系统的权利,而不希望其做其他的事情。因为此时这个账户具有了系统root特权用户的权限,故其对于Unix操作系统来说具有完全控制的权限。这对于Unix系统来说可能会存在一定的安全隐患。所以说系统工程师的这个考虑也是必要的。如果要让系统工程师之能够执行shutdown或者reboot命令、而不能够进行其他任何维护动作的话,则可以修改用户的.profile文件,将shutdown等命令插入到这个用户的profile文件中。另外一些有些专家说最好在这个命令前面再加上exec指令,对于这个做法笔者不知可否。笔者个人觉得有点画蛇添足的味道。各位读者可以自己去试试看,有否这个必要。