Linux编程用户信息管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
......
一绪论
§1.1 设计背景
Linux 是一套免费使用和自由传播的类Unix 操作系统,是一个基于POSIX 和 UNIX 的多用户、多任务、支持多线程和多CPU 的操作系统。 Linux 继承了 Unix 以网络为核心的设
计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86 系列 CPU 的计
算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。
§1.2 设计目的
在 Linux 系统的 /etc 目录下有这样一个文件passwd ,该文件里包含系统中所有用户信息的记录,记录里包含每个用户的如下信息:用户名、密码、用户ID、组ID、用户全名、
用户主目录和用户登录所用的shell 。请设计一个脚本(shell)程序能实现增加、删除、查
找和显示特定用户信息的功能。你们可以通过创建一些UNIX/LINUX shell脚本文件来满足
以上需求。
二需求分析
§2.1 系统概述
§2.1.1 任务概述
Linux 作为多用户、多任务的操作系统,其系统资源是所有用户共享的。对用户的管理是操作系统的重点。 LINUX 课程设计要用shell 编程实现,将理论学习付诸实践。设计一个脚本( shell )程序能实现增加、删除、查找和显示特定用户信息的功能。
§2.1.2 需求规定
程序要包括四个文件,即 menu , add , delete , passwd 四个文件。 passwd 文件是用来保存用户信息; menu文件是主菜单,要求运行的时候能显示一个菜单供用户选择;addusers 文件是用来增加信息;deluser文件是用来删除信息。在主Shell脚本文件里(必须以menu命名)要有一个多操作选项的菜单以便用户从中选择。对于任务 6 和 7,需要
......
编写单独的Shell 脚本文件(必须分别命名为addusers 和 deluser )并且在主脚本 menu 文件中调用这些脚本文件。
§2.2 功能需求
在主 Shell 脚本文件里(必须以 menu 命名)要有一个多操作选项的菜单以便用户从中选择。在不同任务的中,这些操作能自动实现以下功能:
1、在屏幕上显示当前所有用户的记录
2、在屏幕上显示当前所有用户(经过格式化和排序的)的记录
3、只在屏幕上显示用户名和用户ID
4、只在屏幕上显示(经过格式化和排序的)用户名和用户ID
5、查询并显示特定用户的记录
6、往 passwd 文件里增加新的用户记录
7、从 passwd 文件里删除某个用户记录
你可以使用UNIX/LINUX中一些比较简单的命令或命令组合来执行1、 2 、 3、 4、5 的任务。对于任务 6 和 7,你需要编写单独的 Shell 脚本文件(必须分别命名为addusers和deluser )并且在你的主脚本menu 文件中调用这些脚本文件。
三系统设计
§3.1结构层次图
主菜单
显示显示
显示显示
当前当前格式查找
用户添加删除
所有所有化后指定
名和用户用户退出用户用户用户用户
用户信息信息
的记经格名和信息
ID
录式化用户
......
§3.2.运行流程
(1)总运行流程
主菜单
是否正确提示错
Y N
选择误
功能实
是否选Q N继续选择
现
Y
退出
(2) addusers 模块运行流程
用户添加
是否正确
N
填写信息
提示错
Y
误
添加用
户信息
进入主
菜单
(3)deluser 模块用户运行流程
. .
用户删除
输入用
户 ID
是否存在
N
用户 ID
Y
... .
提示错
误
是否删除N
Y
删除成
功
进入主
菜单
四系统实现
主菜单:
选择 1 :打印当前所有用户
选择 2 :打印当前所有用户记录(格式化后)
......
选择 3 :打印用户名和用户ID
选择 4 :打印用户名和用户ID (格式化后)
选择 5 :查询特定用户
没有输入关键字和输入关键字没有记录:
查找到记录:
选择 6 :添加用户
......
添加成功:
用户名无效情况:用户名只能是数字或字母,用户名不能为空,
密码无效:密码不能小于6,密码不能为空,密码只能是数字或字母,密码必须和确认密码相同
用户 ID 无效:用户 ID 不能为空,用户 ID 不能小于500,用户 ID 只能为数字
组 ID 无效:组 ID 不能为空,组 ID 不能小于500,组 ID 只能为数字
登录 shell 无效: shell 只能是 bash,sh,kash,csh中的一种,shell不能空
选择 7 :删除用户
查找用户ID 存在,是否要删除选Y,删除成功:
用户 ID 不存在和没有输入用户ID 情况:
用户 ID 存在,在确认删除选N 和其他字符是退出: