Linux編程用戶信息管理_第1頁
Linux編程用戶信息管理_第2頁
Linux編程用戶信息管理_第3頁
Linux編程用戶信息管理_第4頁
Linux編程用戶信息管理_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、一 緒論§1.1設(shè)計背景Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。它主要用于基于Intel x86系列CPU的計算機上。這個系統(tǒng)是由全世界各地的成千上萬的程序員設(shè)計和實現(xiàn)的。§1.2設(shè)計目的在Linux系統(tǒng)的/etc目錄下有這樣一個文件passwd,該文件里包含系統(tǒng)中所有用戶信息的記錄,記錄里包含每個用戶的如下信息:用戶名、密碼、用戶ID、組ID、用戶全名、用戶主目錄和用戶登錄所用的shell。請設(shè)

2、計一個腳本(shell)程序能實現(xiàn)增加、刪除、查找和顯示特定用戶信息的功能。你們可以通過創(chuàng)建一些UNIX/LINUX shell 腳本文件來滿足以上需求。二 需求分析§2.1系統(tǒng)概述§2.1.1 任務(wù)概述Linux作為多用戶、多任務(wù)的操作系統(tǒng),其系統(tǒng)資源是所有用戶共享的。對用戶的管理是操作系統(tǒng)的重點。LINUX課程設(shè)計要用shell編程實現(xiàn),將理論學(xué)習(xí)付諸實踐。設(shè)計一個腳本(shell)程序能實現(xiàn)增加、刪除、查找和顯示特定用戶信息的功能。§2.1.2需求規(guī)定程序要包括四個文件,即menu,add,delete,passwd四個文件。passwd文件是用來保存用戶信

3、息;menu文件是主菜單,要求運行的時候能顯示一個菜單供用戶選擇;addusers文件是用來增加信息;deluser文件是用來刪除信息。在主Shell腳本文件里(必須以 menu 命名)要有一個多操作選項的菜單以便用戶從中選擇。對于任務(wù)6和7,需要編寫單獨的Shell腳本文件(必須分別命名為addusers和deluser)并且在主腳本menu文件中調(diào)用這些腳本文件。§2.2功能需求在主Shell腳本文件里(必須以 menu 命名)要有一個多操作選項的菜單以便用戶從中選擇。在不同任務(wù)的中,這些操作能自動實現(xiàn)以下功能:1、 在屏幕上顯示當(dāng)前所有用戶的記錄2、 在屏幕上顯示當(dāng)前所有用戶(

4、經(jīng)過格式化和排序的)的記錄3、 只在屏幕上顯示用戶名和用戶ID4、 只在屏幕上顯示(經(jīng)過格式化和排序的)用戶名和用戶ID5、 查詢并顯示特定用戶的記錄6、 往passwd文件里增加新的用戶記錄7、 從passwd文件里刪除某個用戶記錄你可以使用UNIX/LINUX中一些比較簡單的命令或命令組合來執(zhí)行1、2、3、4、5的任務(wù)。對于任務(wù)6和7,你需要編寫單獨的Shell腳本文件(必須分別命名為addusers和deluser)并且在你的主腳本menu文件中調(diào)用這些腳本文件。三 系統(tǒng)設(shè)計§3.1結(jié)構(gòu)層次圖§3.2.運行流程 (1)總運行流程(2)addusers模塊運行流程(3)

5、deluser模塊用戶運行流程四 系統(tǒng)實現(xiàn)主菜單:選擇1:打印當(dāng)前所有用戶選擇2:打印當(dāng)前所有用戶記錄(格式化后)選擇3:打印用戶名和用戶ID選擇4:打印用戶名和用戶ID(格式化后)選擇5:查詢特定用戶沒有輸入關(guān)鍵字和輸入關(guān)鍵字沒有記錄:查找到記錄:選擇6:添加用戶添加成功:用戶名無效情況:用戶名只能是數(shù)字或字母,用戶名不能為空,密碼無效:密碼不能小于,密碼不能為空,密碼只能是數(shù)字或字母,密碼必須和確認密碼相同用戶ID無效:用戶ID不能為空,用戶ID不能小于,用戶ID只能為數(shù)字組ID無效:組ID不能為空,組ID不能小于,組ID只能為數(shù)字登錄shell無效:shell只能是bash,sh,kas

6、h,csh中的一種,shell不能空選擇7:刪除用戶查找用戶ID存在,是否要刪除選Y,刪除成功:用戶ID不存在和沒有輸入用戶ID情況:用戶ID存在,在確認刪除選N和其他字符是退出: 選擇Q:退出不正確選擇:五 代碼實現(xiàn)1)主菜單代碼#! /bin/bash#刪除用戶clearecho " 用戶刪除 "echo "="while truedo read -p "輸入用戶ID:" useridsif( test expr match "$userids" "0-9*" -ne expr length

7、 "$userids" ) then echo "輸入的用戶ID只能是數(shù)字,請重新輸入"elif ( test -z "$userids" ) then echo "用戶ID不能為空"else breakfidonegetuserid=$( awk -F ':' ' $3 = "'$userids'" print $3 ' passwd )if ( test $getuserid ) then read -p "是否要刪除(Y/N):&q

8、uot; ack if (test "$ack" = "Y" ) then sed -i '/'"$userids"'/d' passwd if ( test $? -eq 0) then echo "刪除成功" else echo "刪除失敗" break fi else break fielse echo "用戶不存在"fi2)用戶添加代碼#! /bin/bashclear#用戶名echo " 新用戶添加 "echo &

9、quot;="while truedo echo -n "請輸入用戶名:"read username a= expr match "$username" "0-9a-zA-Z*" b= expr length "$username" if ( test $a -ne $b ) then echo "用戶名只能是數(shù)字或字母,請重新輸入用戶名:"elif ( test -z "$username" ) then echo "用戶名不能為空,請重新輸入用戶名:&

10、quot;else breakfidone#用戶密碼 while truedo read -p "請輸入密碼:" passwd if ( test expr match "$passwd" "0-9a-zA-Z*" -ne expr length "$passwd" ) thenecho "用戶密碼只能為數(shù)字或字母,情重新輸入密碼"elif ( test -z "$passwd" ) thenecho "用戶密碼不能為空,請輸入密碼"elif ( test

11、 expr length "$passwd" -lt 6 ) thenecho "密碼長度不能小于6"else read -p "請輸入確認密碼:" ackpwif(test "$passwd" = "$ackpw" ) then breakelseecho "兩次的密碼不匹配"fifidone#用戶IDwhile truedo read -p "請輸入用戶ID:" useridif ( test expr match "$userid"

12、; "0-9*" -ne expr length "$userid" ) thenecho "用戶ID只能為數(shù)字"elif ( test -z "$userid") thenecho "用戶ID不能為空"elif ( test $userid -lt 500 ) thenecho "用戶ID不能小于500,請重新輸入"else breakfidone#組IDwhile truedo read -p "請輸入組ID:" groupidif ( test ex

13、pr match "$groupid" "0-9*" -ne expr length "$groupid" ) thenecho "組ID只能為數(shù)字"elif ( test -z "$groupid" ) thenecho "組ID不能為空, 請重新輸入"elif ( test $groupid -lt 500 ) thenecho "組ID不能小于500,請重新輸入"elsebreakfidone#登錄shellwhile truedoread -p &

14、quot;請輸入登錄shell(bash,sh kash,csh):" shellnameif (test "$shellname" != "bash" -a "$shellname" != "sh" -a "$shellname" != "kash" -a "$shellname" != "csh" ) thenecho "你輸入的shell名不存在本系統(tǒng)中,請重新輸入"else breakfidone#

15、添加用戶userinfo="$username:$passwd:$userid:$groupid:$username:/home/$username:/bin/$shellname"if ( test $? -ne 1 ) thenecho $userinfo >> passwdif ( test $? -eq 0 ) then echo "用戶添加成功"elseecho "用戶添加失敗" fifi3)用戶刪除代碼#! /bin/bash#刪除用戶clearecho " 用戶刪除 "echo "

16、;="while truedo read -p "輸入用戶ID:" useridsif( test expr match "$userids" "0-9*" -ne expr length "$userids" ) then echo "輸入的用戶ID只能是數(shù)字,請重新輸入"elif ( test -z "$userids" ) then echo "用戶ID不能為空"else breakfidonegetuserid=$( awk -F ':' ' $3 = "'$userids'" print $3 ' passwd )if ( test $getuserid ) then read -p "是否要刪除(Y/N):" ack if (test "$ack" = "Y" ) then sed -i '/'"$userids"'/d' passwd if ( test $? -eq 0) then echo &q

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論