Red Hat 7.4、HostA、HostB を使用する 2 つのホストがあります。
rsh-server パッケージと rsh パッケージは両方にインストールされます。
両方のホストでrshデーモンが有効になり、コマンドが、およびrsh,rlogin,rexec
に追加されました。/etc/securetty
/etc/hosts.equiv
HostA
HostB
~からホストA、rootを使用して実行すると、rsh hostb
パスワードを要求せずに正常に接続されます。
~からホストA、他のユーザーの場合はエラーが発生しますrcmd: socket: Permission denied
。
~からホストB、rootを使用して実行すると、rsh hosta
パスワードを要求せずに正常に接続されます。
~からホストBパスワードを要求せずに他のユーザーと正常に接続します。
設定ビットを追加しようとしましたが、chmod +a $(which rsh)
役に立ちません。 SELINUX は両方のホストで無効になります。
両方のホストでファイアウォールが無効になっています。
答え1
この問題を解決しました。
しかし、残念ながら、なぜこれが起こるのか理解していません。
HostAで実行するとき:
# getcap /bin/rsh
彼らは何も返しません。
HostB では、次を返します。
getcap /bin/rsh
/bin/rsh = cap_net_bind_service+ep
パッケージを削除して再インストールしましたが、yum
権限が付与されました。
しかし、そもそもなぜこのようなことが起こるのでしょうか?初めてインストールしたときに何が失われましたか?奇妙な。