久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

計算機網(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.conf

nfs.clIEnt=1

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

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

# vi /etc/inetd.conf

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

# inetd -c

2.客戶端系統(tǒng)

設置并啟動NFS服務器:

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

nfs.server=1

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

假設遠程主機名為server,將本地資源授權(quán)給遠程系統(tǒng):

# vi /etc/exports

/ -root = server

# exportfs -ua

# 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 server

on 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)控分析。

標簽: Unix系統(tǒng)
主站蜘蛛池模板: 东海县| 崇礼县| 烟台市| 岳池县| 屏山县| 汤原县| 平潭县| 海南省| 茂名市| 比如县| 建昌县| 徐汇区| 英超| 融水| 乌拉特后旗| 博白县| 政和县| 保康县| 天门市| 贡山| 枣庄市| 阳山县| 中方县| 红安县| 田林县| 澎湖县| 怀安县| 保德县| 永年县| 葫芦岛市| 土默特右旗| 广南县| 凉城县| 裕民县| 渭南市| 纳雍县| 韶山市| 乐陵市| 奉贤区| 凤庆县| 大余县|