REXEC - Linux手册页

时间:2019-08-20 18:01:12  来源:igfitidea点击:

Linux程序员手册 第3部分
更新日期: 2017-09-15

名称

rexec,rexec_af-将流返回到远程命令

语法

#include <netdb.h>

int rexec(char **ahost, int inport, const char *user,
          const char *passwd, const char *cmd, int *fd2p);

int rexec_af(char **ahost, int inport, const char *user,
             const char *passwd, const char *cmd, int *fd2p,
             sa_family_t af);

rexec(),rexec_af():

Since glibc 2.19:
        _DEFAULT_SOURCE
    In glibc up to and including 2.19:
        _BSD_SOURCE

说明

rcmd(3)废弃了此接口。

rexec()函数使用gethostbyname(3)查找主机* ahost,如果主机不存在,则返回-1。否则,* ahost设置为主机的标准名称。如果同时指定了用户名和密码,则它们将用于向外部主机进行身份验证;否则,将在环境以及用户主目录中的.netrc文件中搜索适当的信息。如果所有操作均失败,则提示用户输入信息。

端口inport指定使用哪个知名的DARPA Internet端口进行连接。调用getservbyname(exec,tcp)(请参阅getservent(3))将返回一个指向包含必要端口的结构的指针。 rexecd(8)中详细描述了连接协议。

如果连接成功,则将Internet类型为SOCK_STREAM的套接字​​返回给调用方,并以stdin和stdout的形式提供给远程命令。如果fd2p不为零,则将建立控制过程的辅助通道,并将其文件描述符放置在* fd2p中。控制进程将在该通道上从命令(单元2)返回诊断输出,并且还将在此通道上将字节作为UNIX信号编号接受,并转发给命令的进程组。返回的诊断信息不包括远程授权失败,因为在验证授权后便建立了辅助连接。如果fd2p为0,则stderr(远程命令的第2单元)将与stdout相同,并且不提供向远程进程发送任意信号的条件,尽管您可以通过使用out来引起注意。带数据。

rexec_af()

rexec()函数可在IPv4(AF_INET)上运行。相比之下,rexec_af()函数提供了一个额外的参数af,允许调用者选择协议。可以将此参数指定为AF_INET,AF_INET6或AF_UNSPEC(以允许实现选择协议)。

版本

rexec_af()函数已在2.2版中添加到glibc。

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
rexec(),rexec_af()Thread safetyMT-Unsafe

遵循规范

这些功能不在POSIX.1中。 rexec()函数首次出现在4.2BSD中,并且存在于BSD,Solaris和许多其他系统上。 rexec_af()函数是较新的,并且较不普及。

BUGS

rexec()函数通过网络发送未加密的密码。

基础服务被认为是一个巨大的安全漏洞,因此在许多站点上均未启用。有关说明,请参见rexecd(8)。

另外参见

rcmd(3),rexecd(8)

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/