日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Unix遠程命令調(diào)用的實現(xiàn)


計算機網(wǎng)絡的發(fā)展雖然十分迅速,但當前網(wǎng)絡資源利用率卻比較低 。網(wǎng)絡中相同資源的重復安裝和配置增加了許多不必要的運營成本,如何有效地利用網(wǎng)絡中有限的資源實現(xiàn)協(xié)同工作是十分現(xiàn)實的問題 。本文介紹一種Unix系統(tǒng)遠程命令調(diào)用機制,它不是常規(guī)意義上的telnet功能,而是一種更為快捷方便的利用NFS協(xié)議建立起來的on命令操作,并在此基礎上實現(xiàn)了豐富的遠程控制功能,可廣泛地應用于局域網(wǎng)和廣域網(wǎng) 。
系統(tǒng)要求● 客戶端和遠程系統(tǒng)需同時運行Unix系統(tǒng),HP-UX、Sun Solaris等均可;● 客戶端設置為NFS服務器,遠程系統(tǒng)設置為NFS客戶機,這樣可將客戶端環(huán)境及工作目錄仿真到遠程系統(tǒng),利用遠程系統(tǒng)豐富的資源,執(zhí)行命令并將結(jié)果返回到客戶端;● 通過inetd服務進程在遠程系統(tǒng)配置好rexd服務,通過RPC(Remote Process Control),響應客戶端運行的on命令遠程調(diào)用請求;● 實現(xiàn)遠程調(diào)用的用戶要在兩端系統(tǒng)中擁有相同的UserID和GroupID;● 客戶端只能以普通用戶而非超級用戶(root)執(zhí)行on命令操作;● 在利用該機制進行軟件開發(fā)時,兩端操作系統(tǒng)版本號要保持一致,否則會導致生成的二進制代碼不兼容的問題 。實現(xiàn)原理用戶在客戶端本地執(zhí)行“on host command”實現(xiàn)在遠程主機上進行命令調(diào)用的功能 。遠程主機收到on命令調(diào)用請求后自動由inetd服務進程啟動rexd進程 。如果請求包中附帶的UserID在遠程主機中存在,則以該用戶執(zhí)行相應命令,否則出錯退出 。命令執(zhí)行期間rexd自動將客戶端工作環(huán)境仿真到遠程系統(tǒng)上,并通過NFS協(xié)議自動將其工作目錄臨時掛接到遠程系統(tǒng)的特定目錄下 。命令執(zhí)行完畢輸出結(jié)果返回到客戶端后,用戶工作目錄自動卸載,rexd進程也自動退出 。所有這一切后臺操作對用戶而言都是透明的 。設置步驟本文以HP-UX 10.20為例介紹遠程調(diào)用的具體實現(xiàn)過程(在其他Unix系統(tǒng)上,如SCO OpenServer上同樣調(diào)試通過) 。以下配置均需超級用戶(root)執(zhí)行 。1.遠程系統(tǒng)設置并啟動NFS客戶機 :# vi /etc/rc.config.d/nfs.confnfs.clIEnt=1# /sbin/init.d/nfs.client start設置并啟動rexd后臺服務程序,自動響應客戶端遠程調(diào)用請求:# vi /etc/inetd.confrpc stream tcp nowait root /usr/sbin/rpc.rexd 100017 1 rpc.rexd# inetd -c2.客戶端系統(tǒng)設置并啟動NFS服務器:# vi /etc/rc.config.d/nfs.confnfs.server=1# /sbin/init.d/nfs.server start假設遠程主機名為server,將本地資源授權(quán)給遠程系統(tǒng):# vi /etc/exports/ -root = server# exportfs -ua【Unix遠程命令調(diào)用的實現(xiàn)】# exportfs -a這樣一來,當遠程系統(tǒng)rpc.rexd收到客戶端on遠程調(diào)用請求時,自動檢查客戶端配置情況,如授權(quán)許可則通過NFS協(xié)議將客戶端用戶工作目錄自動掛接到 /usr/spool/rexd/rexdXXXXXX,其中XXXXXX是運行rexd的進程序列號 。以上任何一個環(huán)節(jié)出錯都會導致遠程調(diào)用失敗并返回相應錯誤信息 。命令調(diào)用on 命令只允許以普通用戶執(zhí)行,格式如下:on [ -i | -n ] [ -d ] hostname [command]例如:on -i serveron server ls -l /home/yyf其中:● -i: 表示交互式操作;● -n: 命令執(zhí)行期間無需輸入?yún)?shù);● -d: 調(diào)試模式;● hostname: 遠程主機名;● command: 要執(zhí)行的命令,如果省略則進入一個交互式的shell提示符下,以后發(fā)送的每一個命令都將在遠程主機仿真的用戶工作目錄下執(zhí)行(如/var/spool/rexd/rexda00756/home/yyf) 。安全考慮● 為最大限度地保護本地文件系統(tǒng),以防止非法存取,客戶端設置/etc/exports時應通過授權(quán)給確定的遠程主機普通用戶而非超級用戶操作,明確只能在指定的遠程主機上調(diào)用命令 。如:/home -rw = host1:host2/usr -rw = host3● 在遠程系統(tǒng)上編輯安全設置文件:/var/adm/inetd.sec僅限制在特定的客戶機上執(zhí)行on命令調(diào)用 ?!?清理遠程系統(tǒng)中不必要的普通用戶,防止客戶端任意用戶執(zhí)行遠程命令調(diào)用 ?!?在遠程系統(tǒng)上啟動rpc.rexd服務進程時帶上 -r 參數(shù),增強對客戶端系統(tǒng)的安全檢查,或帶上 -l logfile參數(shù)將每次遠程調(diào)用請求信息(包括診斷、警告、出錯等)記入特定日志文件,供管理員定期監(jiān)控分析 。

推薦閱讀