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

正文內容

一種遠程管理linux系統(tǒng)工具的設計與實現—免費計算機-閱讀頁

2024-12-26 01:34本頁面
  

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