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

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

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

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

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

系統(tǒng)要求

● 客戶端和遠(yuǎn)程系統(tǒng)需同時(shí)運(yùn)行Unix系統(tǒng),HP-UX、Sun Solaris等均可;

● 客戶端設(shè)置為NFS服務(wù)器,遠(yuǎn)程系統(tǒng)設(shè)置為NFS客戶機(jī),這樣可將客戶端環(huán)境及工作目錄仿真到遠(yuǎn)程系統(tǒng),利用遠(yuǎn)程系統(tǒng)豐富的資源,執(zhí)行命令并將結(jié)果返回到客戶端;

● 通過inetd服務(wù)進(jìn)程在遠(yuǎn)程系統(tǒng)配置好rexd服務(wù),通過RPC(Remote Process Control),響應(yīng)客戶端運(yùn)行的on命令遠(yuǎn)程調(diào)用請(qǐng)求;

● 實(shí)現(xiàn)遠(yuǎn)程調(diào)用的用戶要在兩端系統(tǒng)中擁有相同的UserID和GroupID;

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

● 在利用該機(jī)制進(jìn)行軟件開發(fā)時(shí),兩端操作系統(tǒng)版本號(hào)要保持一致,否則會(huì)導(dǎo)致生成的二進(jìn)制代碼不兼容的問題。

實(shí)現(xiàn)原理

用戶在客戶端本地執(zhí)行“on host command”實(shí)現(xiàn)在遠(yuǎn)程主機(jī)上進(jìn)行命令調(diào)用的功能。遠(yuǎn)程主機(jī)收到on命令調(diào)用請(qǐng)求后自動(dòng)由inetd服務(wù)進(jìn)程啟動(dòng)rexd進(jìn)程。如果請(qǐng)求包中附帶的UserID在遠(yuǎn)程主機(jī)中存在,則以該用戶執(zhí)行相應(yīng)命令,否則出錯(cuò)退出。

命令執(zhí)行期間rexd自動(dòng)將客戶端工作環(huán)境仿真到遠(yuǎn)程系統(tǒng)上,并通過NFS協(xié)議自動(dòng)將其工作目錄臨時(shí)掛接到遠(yuǎn)程系統(tǒng)的特定目錄下。命令執(zhí)行完畢輸出結(jié)果返回到客戶端后,用戶工作目錄自動(dòng)卸載,rexd進(jìn)程也自動(dòng)退出。所有這一切后臺(tái)操作對(duì)用戶而言都是透明的。

設(shè)置步驟

本文以HP-UX 10.20為例介紹遠(yuǎn)程調(diào)用的具體實(shí)現(xiàn)過程(在其他Unix系統(tǒng)上,如SCO OpenServer上同樣調(diào)試通過)。以下配置均需超級(jí)用戶(root)執(zhí)行。

1.遠(yuǎn)程系統(tǒng)

設(shè)置并啟動(dòng)NFS客戶機(jī) :

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

nfs.clIEnt=1

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

設(shè)置并啟動(dòng)rexd后臺(tái)服務(wù)程序,自動(dòng)響應(yīng)客戶端遠(yuǎn)程調(diào)用請(qǐng)求:

# vi /etc/inetd.conf

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

# inetd -c

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

設(shè)置并啟動(dòng)NFS服務(wù)器:

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

nfs.server=1

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

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

# vi /etc/exports

/ -root = server

# exportfs -ua

# exportfs -a

這樣一來,當(dāng)遠(yuǎn)程系統(tǒng)rpc.rexd收到客戶端on遠(yuǎn)程調(diào)用請(qǐng)求時(shí),自動(dòng)檢查客戶端配置情況,如授權(quán)許可則通過NFS協(xié)議將客戶端用戶工作目錄自動(dòng)掛接到 /usr/spool/rexd/rexdXXXXXX,其中XXXXXX是運(yùn)行rexd的進(jìn)程序列號(hào)。以上任何一個(gè)環(huán)節(jié)出錯(cuò)都會(huì)導(dǎo)致遠(yuǎn)程調(diào)用失敗并返回相應(yīng)錯(cuò)誤信息。

命令調(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: 遠(yuǎn)程主機(jī)名;

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

安全考慮

● 為最大限度地保護(hù)本地文件系統(tǒng),以防止非法存取,客戶端設(shè)置/etc/exports時(shí)應(yīng)通過授權(quán)給確定的遠(yuǎn)程主機(jī)普通用戶而非超級(jí)用戶操作,明確只能在指定的遠(yuǎn)程主機(jī)上調(diào)用命令。如:

/home -rw = host1:host2

/usr -rw = host3

● 在遠(yuǎn)程系統(tǒng)上編輯安全設(shè)置文件:

/var/adm/inetd.sec

僅限制在特定的客戶機(jī)上執(zhí)行on命令調(diào)用。

● 清理遠(yuǎn)程系統(tǒng)中不必要的普通用戶,防止客戶端任意用戶執(zhí)行遠(yuǎn)程命令調(diào)用。

● 在遠(yuǎn)程系統(tǒng)上啟動(dòng)rpc.rexd服務(wù)進(jìn)程時(shí)帶上 -r 參數(shù),增強(qiáng)對(duì)客戶端系統(tǒng)的安全檢查,或帶上 -l logfile參數(shù)將每次遠(yuǎn)程調(diào)用請(qǐng)求信息(包括診斷、警告、出錯(cuò)等)記入特定日志文件,供管理員定期監(jiān)控分析。

標(biāo)簽: Unix系統(tǒng)
主站蜘蛛池模板: 石渠县| 成安县| 涿州市| 中宁县| 洪洞县| 佛教| 兰坪| 文水县| 绿春县| 七台河市| 合作市| 宣汉县| 浦北县| 峨山| 新和县| 巩义市| 万载县| 正阳县| 雅江县| 灌云县| 滦平县| 东辽县| 彩票| 三穗县| 中江县| 惠水县| 彰化县| 孝昌县| 共和县| 漾濞| 寻乌县| 通江县| 韩城市| 军事| 青神县| 化隆| 汉源县| 宣汉县| 团风县| 乐陵市| 南皮县|