Red Hat 7.4の2つのホスト、HostAとHostBがあります。
rsh-serverパッケージとrshパッケージの両方にインストールされました。
両方のホストで、rshデーモンがアクティブ化され、コマンドrsh,rlogin,rexec
が/etc/securetty
に追加され、/etc/hosts.equiv
にHostA
とHostB
が追加されました。
hostAから、rootを使用して、rsh hostb
を実行すると、パスワードを要求せずに正常に接続します。
hostAから、他のユーザーの場合、エラー:rcmd: socket: Permission denied
を返します。
hostBから、rootを使用して、rsh hosta
を実行すると、パスワードを要求せずに正常に接続します。
From hostBは、他のユーザーと、パスワードを尋ねなくても正常に接続します。
すでにセットビットchmod +a $(which rsh)
を追加しようとしましたが、効果がありません。 SELINUXは両方のホストで無効になっています。
ファイアウォールは両方のホストで無効になっています。
私はこれを解決しました。
しかし、残念ながら、なぜこれが起こるのかわかりません。
HostAで実行する場合:
# getcap /bin/rsh
彼らは何も返しません。
hostBで彼らは戻ってきます:
getcap /bin/rsh
/bin/rsh = cap_net_bind_service+ep
パッケージを削除し、yum
を使用して再インストールすると、アクセス許可が取得されます。
しかし、なぜそれが最初に起こるのですか?それが最初にインストールされたときに何が欠けていますか?奇妙な。