1、 hosts.equiv 文件的用途安全
/etc/hosts.equiv 和 $HOME/.rhosts 定義了哪些計算機和用戶能夠不用提供口令就在本地計算機上執行遠程命令,如 rexec,rcp,rlogin 等等。這些不須要提供口令的計算機和用戶稱爲受信任的。網絡
當本地計算機收到執行遠程命令的請求時,相應的遠程命令服務進程,如 rlogind ,首先檢查 /etc/hosts.equiv 來確認請求是否來自受信任的計算機和用戶。若是這個文件不存在或者雖然存在但不包括相應的計算機和用戶,服務進程就會去檢查 $HOME/.rhosts 文件。post
/etc/hosts.equiv 的權限必須設置爲只有 root 可以寫,建議權限爲600。若是這個文件被設置爲同組或其它用戶可寫,遠程命令服務進程就會忽略它的存在。ui
若是遠程命令是由 root 用戶發起的,遠程命令服務進程會忽略 /etc/hosts.equiv 文件的存在而去直接檢查 $HOME/.rhosts 文件。spa
在指定受信任的計算機和用戶時要很是當心,由於這有可能會形成安全漏洞。orm
2、 hosts.equiv 文件的格式server
添加對計算機/用戶的信任:進程
hostname:信任計算機 hostname 上的全部普通用戶ci
hostname username:信任計算機 hostname 上的用戶 username
+:信任全部計算機上的全部普通用戶
禁止對計算機/用戶的信任:
若是計算機名和用戶都沒有在 /etc/hosts.equiv 中被定義爲受信任的,那麼它們就是不受信任的。另外,您還能夠用如下方法明確地禁止對計算機/用戶的信任。
-hostname:不信任計算機 hostname 上的全部用戶
hostname -username: 不信任計算機 hostname 上的用戶 username
hosts.equiv 與 NIS :
在 /etc/hosts.equiv 中也能夠指定是否信任 NIS 網絡組(NETGROUP)。
+@netgroup:信任網絡組 netgroup 中的全部計算機
-@netgroup:禁止信任網絡組 netgroup 中的全部計算機
hostname +@netgroup:信任來自計算機 hostname 的全部網絡組 netgroup 的成員用戶的請求
hostname -@netgroup:禁止信任來自計算機 hostname 的全部網絡組 netgroup 的成員用戶的請求
/etc/hosts.equiv 中記錄的順序:
在 /etc/hosts.equiv 文件中,記錄的順序十分重要。遠程命令服務進程在檢查 /etc/hosts.equiv 文件時會在第一個匹配發現後返回,也就是說,下面這個例子中的禁止信任記錄是不起做用的:
hostname hostname -user1
計算機 hostname 上的用戶 user1 將可以在不提供口令的狀況下在本地計算機上執行遠程命令。而下面這個例子可以提供指望中的結果:
hostname -user1 hostname
3、/etc/hosts.equiv示例
1. 容許遠程計算機 emerald 和 amethyst 上的全部用戶在本地執行遠程命令而無須提供口令:
emerald amethyst
2. 容許遠程計算機 emerald 上的全部用戶和 amethyst 上的用戶 greygory 在本地執行遠程命令而無須提供口令:
emerald amethyst gregory
3. 容許用戶 peter 從任何遠程計算機在本地執行遠程命令而無須提供口令:
emerald amethyst gregory + peter
4. 容許全部是 century 網絡組成員的遠程計算機上的全部用戶在本地執行遠程命令而無須提供口令:
emerald amethyst gregory + peter +@century
5. 容許全部在計算機 citrine 上又是 engineers 網絡組成員的用戶在本地執行遠程命令而無須提供口令:
emerald amethyst gregory + peter +@century citrine +@engineers
6. 容許全部是 servers 網絡組成員的遠程計算機上的全部屬於 sysadmins 網絡組的用戶在本地執行遠程命令而無須提供口令:
emerald amethyst gregory + peter +@century citrine +@engineers +@server +@sysadmins