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

正文內(nèi)容

h20xx032045_一種遠程管理linux系統(tǒng)工具的設(shè)計與實現(xiàn)(參考版)

2024-09-09 07:31本頁面
  

【正文】 第 23 頁 共 33 頁 gtk_widow_new UserControl Apache DNS InitServer GroupContro ftp gtk_main() 把控制權(quán)戰(zhàn)時交給了 X 系統(tǒng)等待用戶操作 圖 11 主界面的大概流程圖 主窗體有各個功能模塊的操作頁面,程序主界面如圖 12 所示。 } l 主界面 當用戶端和服務(wù)器端連接成功后,就進入主窗體流程了,在主窗體建立前 要接收一些從服務(wù)程序發(fā)送過來的數(shù)據(jù),然后把這些數(shù)據(jù)存放到一些臨時文件 里面,等待具體創(chuàng)建窗體的時候調(diào)用這些數(shù)據(jù)來初始化界面。 mainform(sock)。 if(*sock 0){return 。 text = gtk_entry_get_text((GtkEntry *)textbox)。 char *text = NULL。不成功就返回到連接界面。 這個函數(shù)主要是用來綁定 X 事件,也就是當用戶按下了連接按鈕后調(diào)用 CollFunc()這個函數(shù)。這里就不詳細介紹了。 } 上面函數(shù)大概反映了 GTK 變成中常用的構(gòu)件和函數(shù)。 gtk_widget_show(table)。 gtk_widget_show(clloLabl)。 gtk_widget_show(exitButt)。 gtk_signal_connect_object(GTK_OBJECT(exitButt), clicked,GTK_SI GNAL_FUNC(Destroy), GTK_OBJECT(mainWin))。 gtk_signal_connect(GTK_OBJECT(mainWin), destroy, NULL, NULL)。 gtk_container_add (GTK_CONTAINER (mainWin), table)。 gtk_table_attach_defaults((GtkTable*)table,exitButt,0,2,2,3)。 gtk_table_attach_defaults((GtkTable*)table,textbox,1,2,0,1)。 text = gtk_entry_get_text((GtkEntry *)textbox)。 gtk_table_set_col_spacing(GTK_TABLE(table),1,35)。 gtk_table_set_row_spacing(GTK_TABLE(table),1,10)。 textbox = gtk_entry_new()。 clloButt = gtk_button_new_with_label(connect)。 gtk_window_set_default_size((GtkWindow*)mainWin,80,90)。 mainWin = gtk_window_new(GTK_WINDOW_TOPLEVEL)。 int level。 void CForm(int *sock) { GtkWidget *exitButt,*clloButt,*clloLabl。這個函數(shù)主要功能是創(chuàng)建連接界面,并且當用戶 在文本框中輸入了服務(wù)器 IP 地址后,把文本框中的 IP 傳遞給后面的函數(shù),實 現(xiàn)與服務(wù)器網(wǎng)絡(luò)連接。命令行中傳遞過來的任何參數(shù),只 要是它能識別的,都會從列表中刪除,并且修改 argc和 argv的值,就像這些參數(shù) 從不存在一樣,然后應(yīng)用程序分析剩余的參數(shù)。 第 20 頁 共 33 頁 main() gtk_init() CForm() 按下連接按鈕 sock() connect() 連接建立 TCP3 次握手 否 連接成功 是 主界面 圖 10 連接界面的流程圖 程序從 main()進入以后就調(diào)用 gtk_init()函數(shù)。除了用 GTK 編寫 界面以外還要用到 SOCK 編程來進行和服務(wù)器端的 TCP 連接的建立。 程序設(shè)計 客戶程序一共有兩個窗體,連接窗體和主窗體。 在模塊劃分方面。把用戶操作后的結(jié)果通過 SOCK 來傳達給服務(wù)器程序。 在用戶界面方面,采用 GTK 編程來建立用戶界面,把實現(xiàn)的功能接口通過 界面的方式提供給用戶,讓用戶來進行相關(guān)的操作。 修改配置文件操作,先是接收客戶程序發(fā)送過來的數(shù)據(jù) (要修改的內(nèi)容 ), 找到要修改數(shù)據(jù)的位 置,把收到的數(shù)據(jù)寫入到文件中。然后在讀取環(huán)境變量,然后向客戶程序發(fā)送操作結(jié)果。其流程如圖 9 所示。 查看錯誤日志操作,讀取錯誤日志中的數(shù)據(jù),在把數(shù)據(jù)發(fā)送到客戶程序。 發(fā)送配置文件內(nèi)容操作是讀取 Apache 配置文件的內(nèi)容,然后把讀取的內(nèi)容 發(fā)送到客戶程序。 Apache 服務(wù)停止、啟動和重啟操作是通過 exec 調(diào)用 Apache 停止、啟動和 重啟的 shell 腳本來完成的。 刪除 domain 操作先接收客戶程序發(fā)送的數(shù)據(jù) (要刪除的 domain,和 zone), 然后判斷 /var/named/chroot/etc/ 中是否有這個 zone 存在,如果 沒有就發(fā)送 zone name is not exist到客戶程序,如果有就得到其數(shù)據(jù)文 件名字,然后在數(shù)據(jù)文件 中查看是否有 domain 存在,如果沒有就發(fā)送 Domain name is not exist到客戶程序,如果有就刪除 domain 部分,然后發(fā)送 Domain del succseed到客戶程序。 添加 domian 操作先接收客戶程序發(fā)送過來的數(shù)據(jù) (要添加的 domain 名,IP 和 zone 名 ),然后判斷 /var/named/chroot/etc/ 中是否 有這個 zone 存在,沒有就發(fā)送 zone name is not exist到客戶程序,如果有就得到其 數(shù)據(jù)文件名字。 刪除 zone 操作先接收客戶程序發(fā)送過來的數(shù)據(jù) (要刪除的 zone 名 ),判斷 配置文件中是否有發(fā)送過來 zone 名存在,如果沒有就向客戶發(fā)送 zone name is not exist字符串;如果有就讀取配置文件的數(shù)據(jù)到內(nèi)存 (buff)中 ,再把 buff 內(nèi)存中的數(shù)據(jù)刪除要刪除的部分,然后再把 buff 中的數(shù)據(jù)寫入到配置文件中。進入該模 塊后,服務(wù)程序會接收一個客戶程序發(fā)送的數(shù)據(jù),該數(shù)據(jù)用來控制 DNS 模塊的 流程,其流程如圖 7 所示。 (4) DNS 管理操作 圖 3的程序流程到 Net_DNS_Config()函數(shù)就進入 DNS 功能模塊了。 最 后 再 判 斷 第 5 個 字 符 , 是 1 就 把 文 件 /etc//etc/。然后判斷第 3 個字符,是 1 就調(diào)用系統(tǒng) linnk()函數(shù)把 /etc/, 是 0 就取消對 /etc/。判斷字符串的第 1 個字符,如果是 1 的話就調(diào)用系統(tǒng)調(diào)用 link()把 /etc/;如果 字符是 0 就調(diào)用 unlink()取消 /etc/。其流程 如圖 6 所示。 用戶組操作的流程如圖 5 所示。 瀏覽組的過程,當程序到了瀏覽組的流程后,打開 /etc/group 文件,把文 件的數(shù)據(jù)讀取到 buff 中,再關(guān)閉文件,把 buff 的數(shù)據(jù)發(fā)送的到客戶程序。然后打開 /etc/group 文件,讀取文件的數(shù)據(jù),當讀取的數(shù)據(jù)和發(fā)送過來的組名一樣,就 把 str 復(fù)制到 temp 中,其它都把讀取的數(shù)據(jù)復(fù)制到 temp 中,關(guān)閉打開的文件。 再次打開文件 /etc/group,把 temp 的數(shù)據(jù)都寫到文件中,關(guān)閉文件,這樣就完 成組的刪除操作。在打開 文件 /etc/group 把 temp 的數(shù)據(jù)寫到文件中去,最后把 str 寫入到文件中,關(guān) 閉文件,這樣就實現(xiàn)了組的添加。 進入到組添加流程后,接收客戶端發(fā)送過來要添加的組的信息,然后把接 收的數(shù)據(jù)格 式按照 /etc/group 存儲格式格式化后復(fù)制到 str 中。 etc/group 文件是用戶組的配置 文件,內(nèi)容包括用戶和用戶組,并且能顯示出用戶是歸屬哪個用戶組或哪幾個 用戶組,因為一個用戶可以歸屬一個或多個不同的用戶組;同一用戶組的用戶 之間具有相似的特征。重新以寫文件的操作打開文件 /etc/passwd,然后把二維 數(shù)組 (temp)中的數(shù)據(jù)以流的形式再寫入到文件 /etc/passwd 中,這樣就完成了 修改用戶的操作 當進入瀏覽用戶的流程后,打開 /etc/passwd 文件,把文件的數(shù)據(jù)讀取到 buff 中,再關(guān)閉文件,把 buff 的數(shù)據(jù)發(fā)送的到客戶程序,讓客戶程序顯示當 前的用戶信息。以 C 語言中流的操作打開并且讀取文件 /etc/passwd 的數(shù)據(jù) ,判斷 讀取的數(shù)據(jù),當要修改的用戶名和讀取的用戶 名一致時把 str 數(shù)據(jù)復(fù)制到二維 數(shù)組 (temp);讀取用戶名和修改的用戶名不一致時就把讀取數(shù)據(jù)復(fù)制到 temp 中。重新以寫文件 的操作打開文件 /etc/passwd,然后把二維數(shù)組 (temp)中的數(shù)據(jù)的以流的形式在 寫入到文件 /etc/passwd 中,這樣就實現(xiàn)了用戶的刪除。用 C 中流的操作打開文件 /etc/passwd,判斷讀取的數(shù)據(jù),當要刪除的用戶名和讀取 的用戶 名一致時就不把這個用戶信息復(fù)制到二維數(shù)組 (temp);讀取用戶名和刪 除用戶名不一樣就把讀取數(shù)據(jù)復(fù)制到 temp 中。再以寫的形式打開文 件,然后把上面二維數(shù)組 (temp)的內(nèi)容寫到文件中,最后再把變量 (str)寫到文 件中,這樣就實現(xiàn)了用戶的添加。把客戶程序發(fā)送過來的用戶密碼用 MD5 算法加密,把加密后 的密碼和用戶其他數(shù)據(jù)按照 /etc/passwd 的格式復(fù)制到字符串變量 (str)中。第七字段:用 戶所用 Shell的類型,一般設(shè)置為 /bin/bash。 第 11 頁 共 33 頁 user_control() recv() 字符 property exit adduser scauser recv() recv() fopen() recv() 把接受的 數(shù)據(jù)格式 化存儲在 字符串 str 中 fget() send() fopen() fget() 相同 fopen() 把讀取數(shù)據(jù)存 到 2維數(shù)組 temp 中 把接受的 數(shù)據(jù)格式 化存儲在 字符串 str 中 fopen() 否 為空 是 fget() 接收的字 符和讀取 不同 把讀取數(shù)據(jù)存 到 2維數(shù)組 temp 中 fclose() fget() 否 為空 是 fclose() fopen() fopen() 把 temp 中的數(shù) 據(jù) fputs()到文 件中 把讀取數(shù)據(jù) 存到 2 維數(shù) 組 temp 中 不同 把 str 存到 2 維 數(shù)組 temp 中 相同 接收的字 符和讀取 否 為空 把 temp 中的數(shù) 據(jù) fputs()到文 件中 fclose() fopen() fputs(str) 退出用戶操作 到圖 3 的 recv() 把 temp 的數(shù)據(jù) fputs()到文件 圖 4 用戶操作流程 對 用 戶 的 操 作 是 添 加 、 刪 除 和 修 改 用 戶 , Linux 用 戶 都 是 記 錄 在 第 12 頁 共 33 頁 /etc/passwd 文件中,對用戶添加、刪除和修改都是通過修改 /etc/passwd 文件 來實現(xiàn)。 第 10 頁 共 33 頁 程序入口 sock() bind() listen() accep() 一直阻塞到 客戶連接到 達 連接建立 TCP3 次握 手 init_cli () close () recv () 字符串 對字符 判斷處理 判斷 user group sysconfig dnsconfig apachecon exit vsftpcon user_control() InitAction () group_control() Apache_Config () Net_
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1