標籤:http io ar os 使用 for sp strong 檔案
rcp用途:在本地主機和遠程主機之間或者兩個遠程主機之間傳輸檔案。詳細用法可man rcp查看。
現在要把主機10.200.5.200的/tmp/work.sh(屬主為root使用者)拷貝到遠程主機180.200.3.100的/tmp,配置過程如下:
1、在兩台主機的/etc/hosts檔案添加對方ip<--->hostname映射
在10.200.5.200的/etc/hosts添加一行內容:180.200.3.100 AIX432
在180.200.3.100的/etc/hosts添加一行內容:10.200.5.200 AIX53
2、在兩台主機的root使用者家目錄中的.rhosts檔案中添加以下內容:
10.200.5.200的root $HOME/.rhosts中添加:AIX432 root
180.200.3.100的root $HOME/.rohosts中添加:AIX53 root
3、通過rcp執行遠程複製
在10.200.5.200主機以root使用者執行以下命令:
AIX53# rcp /tmp/work.sh AIX432:/tmp #此時要確保AIX432主機/tmp目錄下沒有work.sh檔案,如果有,將被自動覆蓋。
如果要把10.200.5.200上的一個目錄(包括子目錄及其檔案)複製到遠程主機,可通過rcp命令參數:-r
關於/etc/hosts.equiv和$HOME/.rhosts檔案的區別如下:
首先這兩個檔案都是和主機間的信任關係相關的,也就是允許另外一台機器上的使用者不用輸密碼就可以rlogin到本機。但是,這兩個檔案之間的區別在哪裡呢?
總結一下:
1.首先這兩個檔案裡面的有效格式是一樣的,也就是都可以是下面的格式
主機名稱
主機名稱 使用者名稱
+
2.首先明確如果有遠程主機想rlogin到本機,本機都要做什麼
1)rlogind檢查本機/etc/passwd中是否有遠端使用者名稱,沒有則拒絕訪問
2)如果本機/etc/passwd中有遠端使用者名稱,並且該使用者名稱不是root,則先檢查/etc/hosts.equiv,看看裡面是否存在遠程主機名稱,如果存在,則允許訪問。
如果是root,則跳過對etc/hosts.equiv的檢查,只檢查“~home/.rhosts”。
3)/etc/hosts.equiv中只有遠程主機名稱的話,表示允許遠程主機上的所有非root使用者可以登入本地主機,並且不要求輸入密碼
/etc/hosts.equiv檔案中如果加入了一台遠程主機和一個使用者,在遠程主機上的那個使用者(非root使用者)就可以用rlogin登入本地機上的所有非root帳號,而且不要求輸入密碼。
4)$HOME/.rhosts檔案中如果是遠程主機名稱的話,則只信任由遠程主機上與.rhosts屬主同名的使用者。
$HOME/.rhosts檔案中如果是遠程主機名稱+使用者名稱的話,則遠程主機上對應的那些使用者都可以登入過來到本地主機,但是在本地主機上顯示的使用者權限是對應$HOME的那個本機使用者
rsh, rcp, rlogin, rdist 的配置
本文來自:http://www-01.ibm.com/support/docview.wss?uid=csc149f4fd6617be81a548256f78002768da
在使用rsh, rcp, rlogin, rdist 等各種遠程命令時有時會出現許可被拒(Permission Denied)等錯誤,如下所示:
rcp 0826-813 – permission denied
本文檔將針對於如何調試解決這些問題進行簡單的討論,並通過執行個體說明幾種常用的調試方法及其過程。內容適用於AIX 5L 以及AIX4.3。
說明:
1. 檢查這些遠程命令所需要的基本設定
配置這些遠程命令需要正確設定 .rhosts 或者 hosts.equiv 檔案。兩個關鍵點是
1)確認相關檔案的內容以及使用權限設定
.rhosts和hosts.equiv分別位於$HOME目錄以及/etc目錄下。它們的許可許可權應該設定為600。內容應該包括你正在使用的主機的機器名以及你登入的使用者名稱。特別注意檔案中登記的主機名稱要和實際的主機名稱完全符合。這些檔案應該存在於遠程命令操作的伺服器上。參看man協助可以得到更多的關於這兩個檔案及其要求的格式的相關資訊。
2)確認正向及反向名解析( forward and reserve name resolution)在兩個系統上能正常工作,並且解析的結果和你想要的一致。檢測正向及反向名解析( forward and reserve nameresolution )可以使用host 命令檢查主機名稱和IP地址。參見下列例子:
在本例中你想 rsh 從一台叫 fozzie 主機到一台名叫 bert 的機器,並且作為root運行date命令。
在fozzie 機器上:
# rsh bert date
#rshd: 0826-813 Permission is denied
出現許可被拒的錯誤,現在到bert機器上檢查檔案內容以及使用權限設定:
# cat /.rhosts |grep fozzie
#fozzie root
(正確的 .rhosts檔案中存在客戶機的主機名稱和要登入進來的使用者名稱)
# ls -l /.rhosts
# -rw------- (許可使用權限設定為600,也是正確! )
檔案內容和使用權限設定似乎都正確,那麼問題出在什麼地方呢?再來檢查名解析:
# cat /etc/netsvc.conf
# hosts=local,bind4
(顯示名解析將先使用本機/etc/hosts,然後才是 DNS)
# cat /etc/hosts |grep fozzie
#
(在本機host檔案中沒有發現fozzie,因此bert 解析 fozzie 經DNS)
# host fozzie
#fozzie.austin.ibm.com is 10.1.4.18
# host 10.1.4.18
#fozzie.austin.ibm.com is 10.1.4.18
由此可知,通過DNS解析出的fozzie實際上是fozzie.austin.ibm.com,這和包含在.rhosts中的fozzie是不匹配的。為瞭解決這個問題你可以通過編輯/etc/hosts增加一個fozzie的短名字,或者編輯.rhosts使fozzie使用其長名。為了和/etc/netsvc.conf保持一致,編輯/etc/hosts檔案
# vi /etc/hosts
增加以下一行
10.1.4.18 fozzie
再次使用host命令,
# host fozzie
fozzie is 10.1.4.18
# host 10.1.4.18
fozzie is 10.1.4.18
現在回到fozzie 機器,再試rsh
# rsh bert date
#Tue May 21 10:16:39 CDT 2004
2. 利用 who am i 命令進行調試
另一個在調試遠程命令的名解析功能時很有用的命令是who am i。參見下例:
例:
telnet 或者 rlogin 從fozzie 到 bert 然後運行 who am i
#who am i
#root pts/0 Sep 21 10:18 (10.1.4.18)
這顯示命令執行者(我-i)是root ,IP地址為10.1.4.18。bert 是通過IP地址而不是通過名字來找fozzie。為了運行遠程命令,在bert上的
.rhosts中必須反映這一點。所以.rhosts檔案應該包含:
10.1.4.18 root
3. 其它調試技巧
在調試遠程命令相關的問題中,其它的相關檢查項目可能包括:
(1) 身分識別驗證( authentication):
# lsauthent-->krb5 standard AIX
可能需要更改為 std
# chauthent -std
# lsauthent-> Standard AIX
(2) 各種命令的許可許可權( permissions )
# ls -al /usr/bin/rsh
-r-sr-xr-x 2 root system 303506 Feb 10 14:11/usr/bin/rsh
# ls -l /usr/sbin/rshd
-r-sr-xr-- 1 root system 24556 Feb 10 14:12/usr/sbin/rshd
# ls -l /usr/bin/rcp
-r-sr-xr-x 1 root system 319972 Apr 08 2001 /usr/bin/rcp
# ls -al /usr/bin/rlogin
-r-sr-xr-x 1 root bin 306328 Apr 10 2002 /usr/bin/rlogin
# ls -al /usr/sbin/rlogind
-r-sr-xr-- 1 root system 33864 Jul 17 2002/usr/sbin/rlogind
除了rshd 和rlogind 是 4554外 ,其它各項都應該是4555 -r-sr-xr-x 。
AIX rcp跨主機遠程