freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

一種遠(yuǎn)程管理linux系統(tǒng)工具的設(shè)計(jì)與實(shí)現(xiàn)—論文-閱讀頁(yè)

2024-12-27 10:24本頁(yè)面
  

【正文】 /home/terrycheops。 程序進(jìn)入到了添加用戶后,接收客戶程序傳過(guò)來(lái)要添加的用戶信息 (用戶名、密碼、全名 )。用 C 語(yǔ)言的流的讀操作打開(kāi)文件/etc/passwd,讀取 /etc/passwd中的每一行,把每次讀取的數(shù)據(jù)都復(fù)制到二維數(shù)組 (temp)中 ,關(guān)閉文件。 程序進(jìn)入到了刪除用戶流程后,接收客戶程序要?jiǎng)h除用戶的用戶名。然后關(guān)閉這個(gè)流。 用戶修改過(guò)程,接收客戶程序發(fā)送過(guò)來(lái)的數(shù)據(jù)后,把接收的數(shù)據(jù)格式化復(fù)制到 str中。然后關(guān)閉這個(gè)流。 (2) 系統(tǒng)用戶組的操作 用戶組( Group)配置文件主要有 /etc/group 和 /etc/gshadow,其中 /etc/gshadow是 /etc/group的加密信息文件。對(duì)組的操作都是通過(guò)修改/etc/group來(lái)實(shí)現(xiàn)的,主要是對(duì)組的添加刪除和修改。然后打開(kāi)文件 /etc/group,讀取文件中組的數(shù)據(jù)復(fù)制到二維數(shù)組 (temp)中 ,關(guān)閉文件。 組的刪除過(guò)程,讀取客戶程序發(fā)送過(guò)來(lái)的數(shù)據(jù),然 后打開(kāi) /etc/group文件,讀取文件的數(shù)據(jù),當(dāng)讀取的數(shù)據(jù)和發(fā)送過(guò)來(lái)的組名一樣,就不把讀取數(shù)據(jù)復(fù)制到二維數(shù)組 (temp)中,其它都把讀取的數(shù)據(jù)復(fù)制到 temp中,關(guān)閉打開(kāi)的文件。 組的修改過(guò)程,接收客戶端發(fā)送過(guò)來(lái)要添加組的信息,然后把接收的數(shù)據(jù)格式按照/etc/group存儲(chǔ)格式格式化后存復(fù)制到 str變量中。再次打開(kāi)文件 /etc/group,把 temp的數(shù)據(jù)都寫到文件中,關(guān)閉文件,這樣就完成組的修改操作。讓客戶程序顯示當(dāng)前的用戶信息。 第 15 頁(yè) 共 33 頁(yè) 圖 5 組操作流程 (3) 系統(tǒng)服務(wù)啟動(dòng)管理 系統(tǒng)服務(wù)啟動(dòng)管理和其他的操作不大一樣, 其他的操作是通過(guò)修改配置文件來(lái)實(shí)現(xiàn)的,fopen() fget() 把讀取數(shù)據(jù)存到 2 維數(shù)組temp 中 為空 fopen() exit groupadd groupscan group_control() recv() 字符 recv() recv() property 把接收的數(shù)據(jù)格式化存儲(chǔ)在字符串 str 中 fclose() fopen() 把 temp 中的數(shù)據(jù) fputs()到文件中 fputs(str) fopen() fget() 為空 相同 把讀取數(shù)據(jù)存到 2 維數(shù)組temp 中 接收和讀取字的符 不同 是 否 否 是 fclose() 把 temp 中的 數(shù)據(jù) fputs()到文件中 recv() 把接收的數(shù)據(jù)格式化存儲(chǔ)在字符串 str 中 fopen() 把讀取數(shù)據(jù)存到 2 維數(shù)組 temp 中 fget() 把 str存到 2維數(shù)組 temp 中 fclose() fopen() 把 temp 中的數(shù)據(jù) fputs()到文件中 相同 接收和讀取的字符 不同 否 為空 是 fopen() fget() send() 退出組的操作到圖 3 的 recv函數(shù) 第 16 頁(yè) 共 33 頁(yè) 而系統(tǒng)服務(wù)的啟動(dòng)是通過(guò)添加和刪除鏈接文件來(lái)完成的。 圖 6 系統(tǒng)啟動(dòng)服務(wù)管理流程 服務(wù)程序進(jìn)入到圖 3的 InitAction()函數(shù)就進(jìn)入了系統(tǒng)服務(wù)啟動(dòng)管理流程,接收客戶程序發(fā)送過(guò)來(lái)的數(shù)據(jù),這里發(fā)送過(guò)來(lái)的是一個(gè)有 5個(gè)字符串的數(shù)組。然后再判斷第 2 個(gè)字符 ,是 1 就把/etc/;如果第 2個(gè)字符是0,就取消文件 /etc/。然后就判斷第 4個(gè)字符的值,如果是 1 話就把 /etc/,是 0 就取消對(duì)/etc/。 否 則 就 取 消 對(duì)/etc/。該模塊主要是為在DNS 中添加和刪除 zone;在 zone 中添加和刪除 domain。 圖 7 DNS流程圖 添加 zone 操作先接收客戶程序發(fā)送過(guò)來(lái)的數(shù)據(jù) (要添加的 zone 名字和類型 ),通過(guò)zone的名字加入點(diǎn)格式后在判斷配置文件中有沒(méi)有 zone存在,如果存在就發(fā)送一個(gè)“ zone name is exist”字符串到客戶端,退出 DNS 配置,不存在再把 zone 字和類型 格式化為/var/named/chroot/etc/ 中 zone 存儲(chǔ)格式,然后把格式化后的數(shù)據(jù)存儲(chǔ)到配置文件中,存儲(chǔ)成功后發(fā)送“ zone add succseed”到客戶程序。寫入成功后發(fā)送“ zone delete succsed”字符串到客戶程序。然后把 domian 和 IP格式化后寫入到數(shù)據(jù)文件中。 (5) Apache服務(wù)管理操作 Apache 模塊主要是完成:向客戶程序發(fā)送當(dāng)前的一些 Apache 錯(cuò)誤日志;通過(guò) 客戶發(fā)送過(guò)來(lái)的數(shù)據(jù)進(jìn)行一些簡(jiǎn)單的配置; Apache服務(wù)的開(kāi)啟、關(guān)閉和重啟功能,其流程如圖 8所示。然后再讀取環(huán)境變量,然后向客戶程序發(fā)送操作結(jié)果。 修改配置文件操作,先是接收客戶程序發(fā)送過(guò)來(lái)的數(shù)據(jù) (要修改的內(nèi)容 ),然后在配置文件中查找要修改的位置,把客戶程序發(fā)送過(guò)來(lái)的數(shù)據(jù)寫到配置文件中。 服務(wù)停止操作 字符 Net_DNS_Config () recv() restart refresh saveconfig start 服務(wù)啟動(dòng)操作 服務(wù)重啟操作 發(fā)送配置文件內(nèi)容 修改配置文件的操作 查看錯(cuò)誤日志的操作 viewlog stop 第 19 頁(yè) 共 33 頁(yè) 圖 8 Apache流程圖 (6) FTP服務(wù)管理操作 FTP 模塊主要完成的是對(duì) FTP 服務(wù)的停止、修改和重啟,和通過(guò)客戶程序發(fā)送過(guò)來(lái)的數(shù)據(jù)對(duì) FTP的配置文件進(jìn)行簡(jiǎn)單的修改。 FTP服務(wù)停止、啟動(dòng)和重啟操作是通過(guò) exec調(diào)用 FTP停止、啟動(dòng)和重啟的 shell腳本來(lái)完成的。 發(fā)送配置文件內(nèi)容操作是讀取 FTP配置文件的內(nèi)容,然后把讀取的內(nèi)容發(fā)送到客戶程序。 第 20 頁(yè) 共 33 頁(yè) 圖 9 FTP流程圖 客戶程序 設(shè)計(jì)思路 客戶端的作用有兩個(gè):一是為用戶提供操作界面;二是和服務(wù)器端進(jìn)行數(shù)據(jù)通信。在和服務(wù)器通信方面是通過(guò) SOCK編程來(lái)實(shí)現(xiàn)的。讓服務(wù)器程序通過(guò) SOCK傳遞的數(shù)據(jù)來(lái)對(duì)服務(wù)器的配置。主要是通過(guò)功能來(lái)劃分為:用戶和組的操作、 DNS配置、 Apache的配置、 FTP的配置、啟動(dòng)服務(wù)管理。 ? 連接界面的編寫 首先是連接界面的編寫,主要是用于和服務(wù)器端的連接。連接界面是這個(gè)程序的第 1個(gè)界面,其流程圖如圖 10所示。 gtk_init()函數(shù)功能初始化 GTK,并且分析在命令行中傳遞進(jìn)來(lái)的參數(shù)。 然后進(jìn)入 CForm()函數(shù)。其函數(shù)代碼如下: GtkWidget *textbox。 GtkWidget *table。 char *text。 gtk_window_set_title((GtkWindow*)mainWin,con)。 exitButt = gtk_button_new_with_label(exit)。 clloLabl = gtk_label_new(Servers IP)。 table = gtk_table_new (2, 3, TRUE)。 gtk_table_set_row_spacing(GTK_TABLE(table),0,10)。 gtk_entry_set_text((GtkEntry *)textbox,input severs IP here!)。 gtk_table_attach_defaults((GtkTable*)table,clloLabl,0,1,0,1)。 gtk_table_attach_defaults((GtkTable*)table,clloButt,0,2,1,2)。 gtk_container_set_border_width (GTK_CONTAINER (mainWin), 0)。 gtk_signal_connect(GTK_OBJECT(exitButt), clicked, GTK_SIGNAL_FUNC(Destroy), NULL)。 gtk_signal_connect(GTK_OBJECT(clloButt), clicked,GTK_SIGNAL_FUNC(CollFunc), sock)。 gtk_widget_show(mainWin)。 gtk_widget_show(clloButt)。 gtk_widget_show(textbox)。 gtk_main()。前面對(duì)里面大部分代碼介紹過(guò)了。但是需要指出的是 gtk_signal_connect(GTK_OBJECT(clloButt), clicked, GTK_SIGNAL_FUNC(CollFunc), sock)。 CollFunc()主要作用是讀取文本框中的字符,并且用這個(gè)來(lái)作為連接服務(wù)器的 IP,向服務(wù)器提出連接請(qǐng)求,連接成功就進(jìn)入主界面,并且銷毀連接界面的構(gòu)件。 CollFunc()函數(shù)如下: void CollFunc( GtkWidget *widget,gpointer data ) { int *sock,result。 sock = data。 *sock = make_cli_sock(text,13000)。} init_cli(sock)。 gtk_widget_destroy(mainWin)。其流程如圖 11所示。 圖 12 程序主界面 (1)用戶操作 Linux 是一個(gè)多用戶、多任務(wù)的操作系統(tǒng)。當(dāng)主界面創(chuàng)建好了后就等待用戶的操作了,用戶的操作界面如圖 13所示。其功能是創(chuàng)建 一個(gè)臨時(shí)界面,讓用戶輸入要添加的用戶的用戶名和密碼,在判斷了輸入文把控制權(quán)戰(zhàn)時(shí)交給了 X 系統(tǒng)等待用戶操作 Apache gtk_main() UserControl gtk_widow_new GroupControl InitServer DNS ftp 第 25 頁(yè) 共 33 頁(yè) 本框都不為空的時(shí)候,先傳遞給服務(wù)器一個(gè)“ User”字符串,再傳遞一個(gè)一個(gè)“ adduser”字符串,這些的傳遞是為了讓服務(wù)器能夠首先通過(guò)判斷這些字符串來(lái)到添加用戶流程里面。 圖 14 添加用戶界面 當(dāng)圖 14的 Entry按鍵被按下了后,就從上圖中的文本框中讀取字符串,再判斷字符串是否為空,不為空就把 UserNane,FullName,Password所對(duì)應(yīng)的字符串分別傳遞服務(wù)器端。 然后再?gòu)姆?wù)器端讀取操作的結(jié)果。如圖 15所示。把用戶所選種的列表框的用戶的信息保存在全句變量中。 User_Del()函數(shù)先向服務(wù)器發(fā)送一個(gè)“ User”字符串,和傳遞一個(gè)“ deluser”字符串,然后就把要?jiǎng)h除的用戶名發(fā)送給服務(wù)程序。 修改用戶:當(dāng)用戶從列表 框里面選中了要修改的用戶后,和刪除用戶操作一樣的會(huì)調(diào)用 selection_call_back()函數(shù),把操作用戶所選中的用戶保存在一個(gè)全局變量中。并且向服務(wù)程序發(fā)送一個(gè)“ User”字符串,其界面圖如 16所示。 cancel按鈕所觸發(fā)的事件是向服務(wù)器發(fā)送一個(gè)“ exit”字符串 。這個(gè)函數(shù)主要作用是向服務(wù)器端發(fā)送一個(gè)“ userscan”字符串,然后服務(wù)程序會(huì)讀取這個(gè)時(shí)候的 /etc/passwd 的內(nèi)容,并且傳遞給發(fā)送到客戶程序,客戶程序把服務(wù)程序傳過(guò)來(lái)的數(shù)據(jù)存儲(chǔ)在臨時(shí)的文件里面,然后把列表框中的數(shù)據(jù)清空,在從臨時(shí)文件中讀取當(dāng)前的用戶信息,重新顯示在列表框中來(lái)。在 Linux系統(tǒng)中文件的訪問(wèn)權(quán)限有這嚴(yán)格的規(guī)定,組在 Linux系統(tǒng)中有很重要的作用。用來(lái)初始化列表。 添加組:添加組的事件是在 GroupAdd按鈕按下了后,先是向服務(wù)程序發(fā)送一個(gè)“ group”字符串和“ addgroup”字符串。等服務(wù)程序返回結(jié)果了后,再把服務(wù)程序返回的結(jié)果顯示給用戶。當(dāng)用戶按下了 GroupDel按鈕后,向服務(wù)器端發(fā)送一個(gè)“ group”字符串和一個(gè)“ delgroup”字符串,然后發(fā)送要?jiǎng)h除的組名到服務(wù)器程序。接收服務(wù)程序發(fā)送過(guò)來(lái)的操作結(jié)果,把結(jié)果顯示給用戶。這個(gè)函數(shù)主要作用是向服務(wù)器端發(fā)送“ group”字符串和“ refresh_group”字符串,然后服務(wù)程序會(huì)讀取這個(gè)時(shí)候的組配置文件的內(nèi)容,傳遞給客戶程序 ,客戶程序把服務(wù)器傳過(guò)來(lái)的數(shù)據(jù)存儲(chǔ)在臨時(shí)的文件里面,然后把列表框中的數(shù)據(jù)清空,再?gòu)呐R時(shí)文件中讀取當(dāng)前的
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1