|HP-UX Reference > R
rexd(1M)HP-UX 11i Version 3: February 2007
rexd — RPC-based remote execution server
rexd is the RPC server for remote command execution. A rexd is started by inetd when a remote execution request is received (see inetd(1M)). rexd exits when command execution has completed.
If the user ID (uid) in the remote execution request is assigned to a user on the server, rexd executes the command as that user. If no user on the server is assigned to the uid, rexd does not execute the command. The -r option and inetd.sec security file allow for better access control (see inetd.sec(4)).
For noninteractive commands, standard output and error file descriptors are connected to sockets. Interactive commands use pseudo terminals for standard input, output, and error (see pty(7)).
If the file system specified in the remote execution request is not already mounted on the server, rexd uses NFS to mount the file system for the duration of the command execution (see nfs(7)). rexd mounts file systems with the nosuid and soft options. For more details on mount options see mount(1M). If the server cannot mount the file system, an error message is returned to the client. By default, any mount points required by rexd are created below /var/spool/rexd. To change the default location, use the -m option.
rexd recognizes the following options and command-line arguments:
The following is a subset of the messages that could appear in the log file if the -l option is used. Some of these messages are also returned to the client.
The client's environment is simulated by rexd, but not completely recreated. The simulation of the client's environment consists of mounting the file system containing the client's current working directory (if it is not already mounted) and setting the user's environment variables on the server to be the same as the user's environment variables on the client. Therefore a command run by rexd does not always have the same effect as a command run locally on the client.
The rex protocol only identifies the client user by sending the uid of the client process and the host name of the client. Therefore, it is very difficult for rexd to perform user authentication. If a user on the server is assigned to the uid sent by the client, rexd executes the requested command as that user. If no user on the client is assigned to the uid sent by the client, rexd returns an error.
The -r option has been added to provide increased user authentication. However, the authentication provided is not foolproof, and is limited by the information passed by the rex protocol.
In order to simulate the client's environment, rexd mounts the file system containing the client's current working directory (if it is not already mounted). This mount is intended to be temporary for the duration of the command.
If rexd mounts a file system, it attempts to umount() the file system after the command has completed executing. However, if rexd receives a SIGKILL signal (see signal(2)), the file system is not unmounted. The file system remains mounted until the superuser executes the appropriate umount command or the server is rebooted.
rexd's attempt to umount the file system can also fail if the file system is busy. The file system is busy if it contains an open file or a user's current working directory. The file system remains mounted until the superuser executes the appropriate umount command or the server is rebooted.
For more information on rexd security issues, see Using and Administering NFS Services. Security issues and their consequences should be considered before configuring rexd to run on a system.
on(1), inetd(1M), mount(1M), dfstab(4), inetd.conf(4), inetd.sec(4).
Using and Administering NFS Services