• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

【转贴】SCO Unix 系 统 中 终 端 用 户 管 理 技 术

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 23次 | 进入软件测试论坛讨论

领测软件测试网
作者:余 三 明 
-------------------------------------------------------------------------------
 Unix 系 统 以 其 多 用 户、 多 任 务 的 特 性, 在 银 行、 保 险、 税 务 和 电 信 业 中 得 到 广 泛 的 应 用。 随 着 计 算 机 网 络 的 发 展,Unix 系 统 中 对 终 端 用 户 的 管 理, 特 别 是 对 网 络 连 接 终 端( 以 下 称 网 络 终 端) 用 户 的 管 理 已 成 为 系 统 管 理 员 工 作 的 一 大 难 点。 虽 然ps、w 及who 命 令 都 报 告 每 个 用 户( 或 每 个 进 程) 隶 属 的 终 端( 终 端 号 如/dev/tty01、tty11a 和ttyp10 等), 但 是 实 际 串 行 线 连 接 终 端 的 终 端 号 和 网 络 终 端 的 终 端 号 代 表 的 意 义 不 同。 通 常tty01、tty23c 和tty4a 等 表 示 实 际 串 行 线。 实 际 串 行 线 连 接 终 端 的 终 端 号 是 固 定 不 变 的, 它 是 串 行 线 所 连 多 用 户 卡 的 口 号, 不 随 用 户 登 录 的 时 间 变 化。 而 包 含 字 母p、q 或r( 如ttyp0 和ttyp1 等) 的 终 端 号 是 网 络 终 端( 如 仿 真 终 端)。 一 个 物 理 的 网 络 终 端 的 终 端 号 是 可 变 的, 它 根 据 用 户 登 录 的 先 后 次 序 变 化。 系 统 分 配 给 第 一 个 登 录 的 网 络 终 端 的 终 端 号 是ttyp0, 第 二 个 登 录 的 终 端 号 是ttyp1, 当 它 注 销 后 再 次 登 录 时 终 端 号 可 能 不 再 是ttyp1。 这 样 一 来, 虽 然ps、w 及who 命 令 都 能 显 示 用 户 和 其 终 端 号 的 对 应 关 系, 但 是 我 们 却 无 法 断 定 某 个 网 络 终 端 用 户 究 竟 处 在 哪 个 物 理 终 端 上。 

---- 为 了 解 决 上 述 问 题, 我 们 从 以 下 三 个 方 面 讨 论 问 题 的 解 决 方 案。 

一、 在 系 统 中 限 制 某 个 用 户 必 须 从 一 个 指 定 的 终 端 上 登 录 进 入 系 统 
---- 例 如 限 制 用 户user1 只 能 从 终 端tty21a 上 登 录, 并 且 登 录 时 间 限 制 在 每 周 星 期 一 至 星 期 五 的8 时 到18 时 之 间。 
---- 1. 首 先 编 写 一 个shell 程 序( 如p_tty) 检 查 终 端 号、 星 期 六 和 时 间, 并 将 其 放 置 到 一 个 安 全 的 位 置, 如/etc/p_tty。 程 序 清 单 如 下: 

# @(#) 这是一个绑定终端号和终端的程序
allowed_tty=“/dev/tty21a”
real_shell=“/bin/sh”
hour=“`/bin/date +%H`”
week=“`/bin/date +%a`”
if [`/bin/tty`  != ${allowed_tty}]
then
exit 1
fi
eval [$hour -ge 8 -a $hour -1e 18] || exit 1
case $week in
Sun|Sat)exit 1;;
esac
exec ${real_shell}

---- 2. 修 改 用 户user1 的 注 册 目 录 中 的.profile 文 件, 在 该 文 件 中 加 入 如 下 内 容, 强 制user1 每 次 登 录 时 作 合 法 性 检 查( 应 为user1 加 上 执 行 权): 
exec /etc/p_tty

---- 如 果 所 在 的 终 端、 时 间 都 符 合 要 求 则 启 动shell, 否 则 就 退 出 系 统。 
二、 查 找 网 络 终 端 的IP 地 址, 确 定 网 络 终 端 号 与 物 理 终 端 的 对 应 关 系 
---- 网 络 上 的 通 信 总 是 双 向 的, 既 然 主 机 可 以 将 信 息 发 送 到 网 络 终 端, 则 主 机 中 一 定 存 在 网 络 终 端 号 和 其 物 理 终 端 的 对 应 关 系。 但 令 人 遗 憾 的 是ps、who 和w 都 不 能 直 接 显 示 终 端 号 和 网 络 终 端IP 地 址 的 对 应 关 系。 我 们 可 以 用finger [@ 主 机 名] 得 到 注 册 用 户 名、 终 端 号 和IP 地 址 的 对 应 关 系。 
 例:$ finger
Login Name tty Idle Login Time Where
Root Superuser *01 5 Tue Sep 7 16:57
User1 p0 Tue Sep 7 17:07   202.37.83.237
User2 p1 Tue Sep 7 17:15  202.37.83.238

---- 这 样, 只 要 我 们 知 道IP 地 址 相 对 应 的 是 哪 一 台 机 器, 就 知 道 某 个 用 户 登 录 的 物 理 位 置。 
---- 如 果 觉 得IP 地 址 不 便 于 记 住, 我 们 可 以 先 为 网 络 上 每 一 台 网 络 终 端 编 一 个 惟 一 的 编 号( 如tty_p01、tty_p02 等 等, 它 们 仅 仅 是 对 物 理 机 器 的 标 识, 与Unix 系 统 产 生 的 逻 辑 终 端 号 无 关)。 再 在 某 个 目 录 下 建 立 一 个IP 地 址 和 相 应 的 终 端 编 号 对 应 关 系 的 数 据 文 件。 如/etc/ttyp, 其 内 容 如 下: 

IP TTY_NO
202.37.83.105  主 控 台
202.37.83.237     tty_p01
202.37.83.238     ty_p02
 … …

---- 由 此, 我 们 用finger 得 到IP 地 址, 查/etc/ttyp 文 件 就 知 道 是 哪 一 个 物 理 机 器; 同 样, 当 某 一 台 物 理 机 器 发 生 故 障 时, 只 要 用 户 说 明 在 哪 个 编 号 的 机 器 上, 我 们 查/etc/ttyp 得 到IP 地 址 后, 用finger 很 快 就 能 确 定 该 用 户 对 应 的 逻 辑 终 端 号。 
三、 网 络 用 户 注 册 的 同 时 用 文 件 记 住 系 统 分 配 的 终 端 编 号 和 相 应 的 逻 辑 终 端 号 
---- 要 知 道 网 络 用 户 在 哪 一 个 物 理 机 器 上, 不 一 定 要IP 地 址, 我 们 可 以 建 立 一 个 文 件( 如/etc/ttyp), 预 先 将 网 络 上 每 一 台 网 络 终 端 编 一 个 惟 一 的 编 号( 如tty_p01 或tty_p02 等), 并 把 所 有 的 编 号 存 入 该 文 件 中, 每 个 编 号 占 一 行。/etc/ttyp 的 内 容 如 下: 
tty_p01
tty_p02
tty_p03
 … …

---- 然 后 在 用 户 注 册 目 录 的.profile( 或 系 统/etc/profile) 文 件 中 加 入 一 段 程 序, 强 制 用 户 登 录 时 必 须 输 入 网 络 终 端 的 编 号, 如 果 输 入 的 编 号 是 合 法 的, 即 在/etc/ttyp 文 件 中 能 够 找 得 到 相 应 行, 则 将 该 编 号、 用 户 名( 用logname 取 得) 和 系 统 产 生 的 逻 辑 终 端 号( 用tty 取 得) 作 为 一 行 保 存 到 一 个 指 定 的 文 件( 如/etc/user_tty) 中。 程 序 清 单 如 下: 
CHOICE=“”  # 用于保存用户输入的终端编号
Tj =“y”
clear
while test“$Tj”=“y”
do
echo -n“ 请输入终端编号:”
read CHOICE
if  [`grep  $CHOICE  /etc/ttyp|wc-1`  -eq  1]
then
if  [`grep  $CHOICE  /etc/ttyp`  =  $CHOICE]
then
Tj =“n”
fi
fi
done
name = `logname`
n_tty = `tty`
echo  $name  $n_tty  $CHOICE>>/etc/user_tty

---- 为 了 保 证 所 有 的 用 户 都 能 把 内 容 写 入 该 文 件, 应 使 每 类 用 户 都 有 读 写 权, 并 且 系 统 每 次 启 动 时 自 动 将 该 文 件 清 空。 
---- 因 为 系 统 启 动 依 赖/etc/inittab 的 内 容, 我 们 可 以 在/etc/inittab 增 加 如 下 一 行 内 容, 以 便 系 统 每 次 启 动 时 自 动 将 该 文 件 清 空。 C99:2:once:/bin/cat /dev/null>/etc/user_tty 

---- ( 作 者 地 址: 湖 南 长 沙 洞 井 铺 中 国 保 险 管 理 干 部 学 院 计 算 机 系)

 horse 回复于:2003-11-23 10:18:45
很好的资料,先看一看。

 studyingunix 回复于:2003-11-23 10:36:21
值得学习一下!

 pxlh 回复于:2003-11-23 10:50:05
是不是每个网络终端的IP始终是固定不变的。。待关机重启的话IP会变了不就没用了吗

 dddwwwzzz 回复于:2003-11-24 14:32:15
顶,现收为敬

 yqxfm 回复于:2003-11-24 14:39:22
好文章! 支持!

 saintdragon 回复于:2003-11-24 16:05:35
不错,好好学习一下。

 j26lwq 回复于:2003-11-24 16:38:33
值得看一下

 shijianhong7508 回复于:2003-11-26 16:11:40
你所说的资料很好,但连接终端的多用户盒及多用户卡对电源电压、电流要求很高,稍不注意就容易烧坏,且最近我们公司终端上打印出来的报表存在很多乱码,真让我痛若,不知你遇到过这种事情没有,有没有解决此类事情的办法,请指教!

 紫枫猪猪 回复于:2003-11-28 10:21:00
不错,好好学习一下

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网