SCO Unix下普通用户管理系统的授权方法
方刚
---- SCO Unix操作系统由于其多用户、多任务和时间片轮转处理等机制的特殊性,因此不允许一般用户执行更改系统日期、发布信息或关闭系统等特殊操作。这些工作要具有超级用户root的身份才能完成。在实际应用中,为了保证系统的安全,一般不允许业务用户进入到超级用户状态,这样就给系统管理带来一定的难度。例如,如果想让一个普通用户来关闭系统,又不想让他进入超级用户状态,实现起来就不太容易。由于这类问题比较常见,所以大家都在积极探索。目前解决这一问题的方法报刊偶有介绍,但大都比较极端,也不够规范和完善。比如,有人采用硬性修改/etc/passwd和/etc/shadow这2个重要的系统文件的方法来建一个关机用户;也有人在root用户的启动文件.profile里面加上相应的关机指令; ……然而,上述方法要么不安全,用户容易对系统造成无意的损害; 要么功能单一,用户容易通过强迫中断脚本的方式进入超级用户的命令状态,对系统造成潜在的危害和风险,真正需要以超级用户身份登录时也很不方便。
---- 实际上,SCO Unix系统本身已经提供了相当完善的用户授权机制,用于给一个普通用户进行授权,使其具有一定的权限来运行超级用户才能使用的某个命令,下面就介绍有关的方法。
---- 首先假设在SCO Unix系统上已经有了一个用户名为appadm的普通用户,现在准备给其授权,让他能够运行下面3个只有root用户才能运行的命令:
---- asktime 更改系统日期命令
---- wall 发布信息命令
---- shutdown 关机命令
---- 为此,只需要执行以下操作步骤。
---- 1. 以root身份登录,将/etc目录下的asktime、wall和shutdown这3个文件拷贝到/tcb/files/rootcmds目录下,或者通过连接方式(用ln命令)在/tcb/files/rootcmds建立同名文件。
---- 2. 用vi修改文件/etc/auth/system/authorize的内容,一般情况下最后一行的显示如下:
root:shutdown
---- 在这一行的后面加上“wall,asktime”。需要注意的是,每个命令之间用“,”分开,存盘后退出。
---- 3. 运行integrity和fixmog命令,对系统的可执行文件属性进行检查和修复,这一步主要是对/tcb/files/rootcmds目录下的可执行文件进行属性检查和修复。若关心哪些文件被做了修改,可用fixmog -i命令观察。
---- 4. 运行系统管理程序sysadmsh(SCO Unix 5.0 以上版本叫scoadmin),选择“Account Manager”,进入“Account Manager”(用户管理器)界面,见图1。
---- 先选中用户“appadm”,再在主菜单下选中“Users”*“Authorizations...”,进入用户的授权管理界面,见图2。把光标到“Use system default authorizations for this user account”那一行,将星号去掉,即不使用系统的缺省授权值。把光标移到右边“Not Authorized”的窗口下,这时会发现命令列表窗口中出现了刚刚拷贝的几个命令:wall和asktime。请注意,shutdown已经在列表中,表示shutdown是系统缺省的授权命令。按“Add”按钮,选中刚定义的几个命令,依次增加到左边的“Authorized”(已授权命令)窗口内,注意保留系统原有的授权命令,按“OK”退出即可。
---- 授权结束后,再用appadm身份登录,就可以运行刚刚授权的3个命令了。需要注意的是,运行这些命令的方式与超级用户略有差别,要按以下格式运行:
---- $ /tcb/bin/asroot 〈命令〉
---- 比如,用户以appadm身份登录后,想运行asktime命令,应该输入以下命令行:
---- $ /tcb/bin/asroot asktime
---- 想要在3分钟后关机,键入下面一行命令即可:
---- $ /tcb/bin/asroot shutdown -g3 -y
---- 更高级的用法是在appadm的.profile文件中编制shell脚本,让用户选择运行关机、发布信息或者修改系统日期等命令的菜单,同时用trap命令捕获中断,以便防止用户按下del中断键进入“#”命令状态。
---- 其他命令的授权和使用法与此相同。如果想使appadm用户再运行其他超级用户才能使用的命令,依照上述方法添加命令即可。
---- (作者地址:陕西省西安市劳动路邮局用邮信箱16号,710082)