国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Unix遠程命令調用的實現

瀏覽:85日期:2024-07-02 13:40:18

計算機網絡的發展雖然十分迅速,但當前網絡資源利用率卻比較低。網絡中相同資源的重復安裝和配置增加了許多不必要的運營成本,如何有效地利用網絡中有限的資源實現協同工作是十分現實的問題。本文介紹一種Unix系統遠程命令調用機制,它不是常規意義上的telnet功能,而是一種更為快捷方便的利用NFS協議建立起來的on命令操作,并在此基礎上實現了豐富的遠程控制功能,可廣泛地應用于局域網和廣域網。

系統要求

● 客戶端和遠程系統需同時運行Unix系統,HP-UX、Sun Solaris等均可;

● 客戶端設置為NFS服務器,遠程系統設置為NFS客戶機,這樣可將客戶端環境及工作目錄仿真到遠程系統,利用遠程系統豐富的資源,執行命令并將結果返回到客戶端;

● 通過inetd服務進程在遠程系統配置好rexd服務,通過RPC(Remote Process Control),響應客戶端運行的on命令遠程調用請求;

● 實現遠程調用的用戶要在兩端系統中擁有相同的UserID和GroupID;

● 客戶端只能以普通用戶而非超級用戶(root)執行on命令操作;

● 在利用該機制進行軟件開發時,兩端操作系統版本號要保持一致,否則會導致生成的二進制代碼不兼容的問題。

實現原理

用戶在客戶端本地執行“on host command”實現在遠程主機上進行命令調用的功能。遠程主機收到on命令調用請求后自動由inetd服務進程啟動rexd進程。如果請求包中附帶的UserID在遠程主機中存在,則以該用戶執行相應命令,否則出錯退出。

命令執行期間rexd自動將客戶端工作環境仿真到遠程系統上,并通過NFS協議自動將其工作目錄臨時掛接到遠程系統的特定目錄下。命令執行完畢輸出結果返回到客戶端后,用戶工作目錄自動卸載,rexd進程也自動退出。所有這一切后臺操作對用戶而言都是透明的。

設置步驟

本文以HP-UX 10.20為例介紹遠程調用的具體實現過程(在其他Unix系統上,如SCO OpenServer上同樣調試通過)。以下配置均需超級用戶(root)執行。

1.遠程系統

設置并啟動NFS客戶機 :

# vi /etc/rc.config.d/nfs.conf

nfs.clIEnt=1

# /sbin/init.d/nfs.client start

設置并啟動rexd后臺服務程序,自動響應客戶端遠程調用請求:

# vi /etc/inetd.conf

rpc stream tcp nowait root /usr/sbin/rpc.rexd 100017 1 rpc.rexd

# inetd -c

2.客戶端系統

設置并啟動NFS服務器:

# vi /etc/rc.config.d/nfs.conf

nfs.server=1

# /sbin/init.d/nfs.server start

假設遠程主機名為server,將本地資源授權給遠程系統:

# vi /etc/exports

/ -root = server

# exportfs -ua

# exportfs -a

這樣一來,當遠程系統rpc.rexd收到客戶端on遠程調用請求時,自動檢查客戶端配置情況,如授權許可則通過NFS協議將客戶端用戶工作目錄自動掛接到 /usr/spool/rexd/rexdXXXXXX,其中XXXXXX是運行rexd的進程序列號。以上任何一個環節出錯都會導致遠程調用失敗并返回相應錯誤信息。

命令調用

on 命令只允許以普通用戶執行,格式如下:

on [ -i | -n ] [ -d ] hostname [command]

例如:

on -i server

on server ls -l /home/yyf

其中:

● -i: 表示交互式操作;

● -n: 命令執行期間無需輸入參數;

● -d: 調試模式;

● hostname: 遠程主機名;

● command: 要執行的命令,如果省略則進入一個交互式的shell提示符下,以后發送的每一個命令都將在遠程主機仿真的用戶工作目錄下執行(如/var/spool/rexd/rexda00756/home/yyf)。

安全考慮

● 為最大限度地保護本地文件系統,以防止非法存取,客戶端設置/etc/exports時應通過授權給確定的遠程主機普通用戶而非超級用戶操作,明確只能在指定的遠程主機上調用命令。如:

/home -rw = host1:host2

/usr -rw = host3

● 在遠程系統上編輯安全設置文件:

/var/adm/inetd.sec

僅限制在特定的客戶機上執行on命令調用。

● 清理遠程系統中不必要的普通用戶,防止客戶端任意用戶執行遠程命令調用。

● 在遠程系統上啟動rpc.rexd服務進程時帶上 -r 參數,增強對客戶端系統的安全檢查,或帶上 -l logfile參數將每次遠程調用請求信息(包括診斷、警告、出錯等)記入特定日志文件,供管理員定期監控分析。

標簽: Unix系統
主站蜘蛛池模板: 甘南县| 武定县| 尼玛县| 桐梓县| 桐乡市| 牡丹江市| 浮山县| 明溪县| 明水县| 连州市| 福安市| 花莲县| 安龙县| 土默特右旗| 东至县| 通山县| 荔波县| 健康| 紫云| 屯留县| 富锦市| 衢州市| 固安县| 高邑县| 漳浦县| 海安县| 新和县| 浦北县| 乳山市| 长丰县| 深州市| 邹平县| 华坪县| 无为县| 赫章县| 岳普湖县| 武强县| 古田县| 尚志市| 晋江市| 太原市|