rcmd: socket: Permission denied

E. Robert Tisdale yellowdog-general@lists.terrasoftsolutions.com
Thu Jan 15 22:55:59 2004


I wrote:

 > > cat main.cc
 > #include <iostream>
 > #include <netdb.h>      //rcmd
 >
 > /* main: syntax: main <cmd> */
 > int main(int argc, char *argv[]) {
 >    short rshPort         = 544;
 >    char* server          = "rover3";
 >    char* rshLocalUser    = "edwin";
 >    char* rshRemoteUser   = "edwin";
 >    char* cmd             = argv[1];
 >
 >    std::cerr << server           << "\t= server"         << std::endl;
 >    std::cerr << rshLocalUser     << "\t= rshLocalUser"   << std::endl;
 >    std::cerr << rshRemoteUser    << "\t= rshRemoteUser"  << std::endl;
 >    std::cerr << rshPort          << "\t= rshPort"        << std::endl;
 >    std::cerr << cmd              << "\t= cmd"            << std::endl;
 >
 >    int rcmdSocket = rcmd(&server, rshPort, rshLocalUser,
 >      rshRemoteUser, (char*)cmd, NULL);
 >
 >    std::cerr << "rcmd returns." << std::endl;
 >
 >    if (-1 != rcmdSocket) {
 >      std::cerr << "rcmd success." << std::endl;
 >      }
 >    else {
 >      std::cerr << "rcmd failure." << std::endl;
 >      }
 >    return 0;
 >    }
 >
 > > g++ -Wall -o main main.cc
 > > ./main ls
 > rover3  = server
 > edwin   = rshLocalUser
 > edwin   = rshRemoteUser
 > 544     = rshPort
 > ls      = cmd
 > rcmd: socket: Permission denied
 > rcmd returns.
 > rcmd failure.
 > > ls -l /usr/bin/rsh
 > -rwsr-xr-x    1 root     root         7868 Jan  7 14:14 /usr/bin/rsh
 > > g++ --version
 > 2.95.4
 > > uname -mprsv
 > Linux 2.4.19-4a #2 Fri Aug 9 10:30:32 PDT 2002 ppc unknown
 >
 >
 > Can anybody tell my why rcmd fails?

 > su
Password:
# chown root main
# chgrp bin main
# chmod u+s main
# ls -l main
-rwsr-xr-x    1 root     bin         16465 Jan  7 20:44 main
# exit
exit
 > ./main ls
rover3  = server
edwin   = rshLocalUser
edwin   = rshRemoteUser
514     = rshPort
ls      = cmd
rcmd returns.
44      = numRead
Desktop
bin
doc
etc
include
lib
src
tmp
usr
         = buf
rcmd success.