Linux编程用户信息管理

Linux编程用户信息管理

ID:47527953

大小:469.50 KB

页数:12页

时间:2020-01-13

Linux编程用户信息管理_第1页
Linux编程用户信息管理_第2页
Linux编程用户信息管理_第3页
Linux编程用户信息管理_第4页
Linux编程用户信息管理_第5页
资源描述:

《Linux编程用户信息管理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一绪论§1.1设计背景Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intelx86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。§1.2设计目的在Linux系统的/etc目录下有这样一个文件passwd,该文件里包含系统中所有用户信息的记录,记录里包含每个用户的如下信息:用户名、密码、用户ID、组ID、用

2、户全名、用户主目录和用户登录所用的shell。请设计一个脚本(shell)程序能实现增加、删除、查找和显示特定用户信息的功能。你们可以通过创建一些UNIX/LINUXshell脚本文件来满足以上需求。二需求分析§2.1系统概述§2.1.1任务概述Linux作为多用户、多任务的操作系统,其系统资源是所有用户共享的。对用户的管理是操作系统的重点。LINUX课程设计要用shell编程实现,将理论学习付诸实践。设计一个脚本(shell)程序能实现增加、删除、查找和显示特定用户信息的功能。§2.1.2需求规定程序要包括四个文件,即

3、menu,add,delete,passwd四个文件。passwd文件是用来保存用户信息;menu文件是主菜单,要求运行的时候能显示一个菜单供用户选择;addusers文件是用来增加信息;deluser文件是用来删除信息。在主Shell脚本文件里(必须以menu命名)要有一个多操作选项的菜单以便用户从中选择。对于任务6和7,需要编写单独的Shell脚本文件(必须分别命名为addusers和deluser)并且在主脚本menu文件中调用这些脚本文件。§2.2功能需求在主Shell脚本文件里(必须以menu命名)要有一个多操

4、作选项的菜单以便用户从中选择。在不同任务的中,这些操作能自动实现以下功能:1、在屏幕上显示当前所有用户的记录2、在屏幕上显示当前所有用户(经过格式化和排序的)的记录3、只在屏幕上显示用户名和用户ID4、只在屏幕上显示(经过格式化和排序的)用户名和用户ID5、查询并显示特定用户的记录6、往passwd文件里增加新的用户记录7、从passwd文件里删除某个用户记录你可以使用UNIX/LINUX中一些比较简单的命令或命令组合来执行1、2、3、4、5的任务。对于任务6和7,你需要编写单独的Shell脚本文件(必须分别命名为add

5、users和deluser)并且在你的主脚本menu文件中调用这些脚本文件。三系统设计§3.1结构层次图§3.2.运行流程(1)总运行流程(2)addusers模块运行流程(3)deluser模块用户运行流程四系统实现主菜单:选择1:打印当前所有用户选择2:打印当前所有用户记录(格式化后)选择3:打印用户名和用户ID选择4:打印用户名和用户ID(格式化后)选择5:查询特定用户没有输入关键字和输入关键字没有记录:查找到记录:选择6:添加用户添加成功:用户名无效情况:用户名只能是数字或字母,用户名不能为空,密码无效:密码不能

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和其他字符是退出:选择Q:退出不正确选择:五代码实现1)主菜单代码#!/bin/bash#删除用户c

7、learecho"用户删除"echo"========================="whiletruedoread-p"输入用户ID:"useridsif(test`exprmatch"$userids""[0-9]*"`-ne`exprlength"$userids"`)thenecho"输入的用户ID只能是数字,请重新输入"elif(test-z"$userids")thenecho"用户ID不能为空"elsebreakfidonegetuserid=$(awk-F':''$3=="'$userids'"{pr

8、int$3}'passwd)if(test$getuserid)thenread-p"是否要删除(Y/N):"ackif(test"$ack"="Y")thensed-i'/'"$userids"'/d'passwdif(test$?-eq0)thenecho"删除成功"elseecho"删除失败"breakfiel

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。