微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题一种安全的UNIX/XENIX系统关机方法
栏目软件操作与技巧
作者罗升、陈洪森
发布1994-01-07
  (1):在letc/passw注册文件中增加一行:
  halt::o:o::/etc/haltsys:/bin/sh
  将/etc/passwd存盘后,只需在login:注册画当面下输入halt回车则可关机。
  (2):利用mkuser命令生成一关机用户halt无口令,再将/etc/passwd文件中包含halt的一行修改为:halt::o:o::/usr/haltsys:/bin/sh;即将画横线的uid(用户标识)、gid(组标识)改为特权用户O.O,然后在 halt用户的。profile文件中增加一条shell语句/etc/haltsys存盘,即可在login:注册状态下输入halt回车,关闭系统。
  以上介绍的各种方法虽然可行,但存在一些问题:如盲目性、即当输入关机命令时无论机器上有无其它用户,也不论其在干什么都强行关机,可能给其它用户带来损失;另外还具有不安全性,因为利用以上办法有可能使普通用户进入特权用户环境,对系统的安全构成威协。
  本人通过增加一关机用户,在用户.profile文件中编制shell程序,较好地解决了这个问题。具体解决方法如下:
  (1)生成关机用户halt,用mkuser建立无口令用户halt。
  (2)用Vi编辑程序对/etc/passwd修改halt用户行,将uid及gid都改为O,而使halt成为特权用户。改为:halt::o:o::/usr/halt:/bin/sh:/usr/halt/halt
  (3)在用户P halt的环境文件。profile中增加二行即trap''12 3 15和halt(关机shell程序)。
  (4)编制halt关机shell程序:
  #关机shell程序,本程序能查询未退出系统
  #用户终端号,并可决定是否关机。及无
  #用户工作自动关闭系统。
  #Author:罗升、陈洪森
  #date:6-05-1989
  today=`date'
  echo"$today"
  echo'\n-------------'
  echo'\n HALTSYS MAIN'
  echo'\n-------------'
  echo'\n 0.exit.'
  echo' 1.force strong haltsys.'
  echo' 2.halt system.'
  echo'\n-------------'
  echo"\n\007 please option:\c"
  read option rest
  case $ option in
  0) break
  ;;
  1) sync
  sync
  haltsys
  ;;
  2)number=`who|wc-1'
  if
  then sync
  sync
  haltsys
  else
  clear
  who
  echo "\n\OOT Terminal not all logout
  can not haltsys!"
  echo`n please press<inter>return"
  read option rest
  fi
  ;;
  *);;
  esac
  clear
  exit o
  存盘后,用chmod 777 halt改为可执行,再将uid改为bin即chown bin halt;将gid改为goup即chgrp goup halt。互此,就构成了一个关机用户。当输入1时则强行关闭系统,而不考虑机器中是否有其它用户,输入2时,首先检查机器系统中用户是否都退出如果退出则关机,否则列出所有的用户及注册终端,不关闭系统。这种办法有效地解决了特权用户的负担,又起到安全、不盲目的目的,经过近几年来的使用,效果显著。
  以上程序及办法在Olivetti/M380,ZJ386/33,HP386/33以及浪潮LC386/33等机器上运行通过,操作系统为XENIX Systlem V2,3,2版本。