1.

After The Chroot(), Calls To Socket() Are Failing. Why?

Answer»
  • On systems where sockets are implemented on top of Streams (e.g. all SysV-based systems, presumably including Solaris), the socket() function will actually be opening certain special files in /dev. You will need to create a /dev directory under your fake root and populate it with the required device NODES (only).
  • Your system documentation may or may not specify exactly which device nodes are required; suggested checking the man page for ftpd, which should list the files you need to copy and DEVICES you need to create in the chroot'd environment.)
  • A less-obvious issue with chroot() is if you call syslog(), as many daemons do; syslog() opens (depending on the system) either a UDP socket, a FIFO or a Unix-domain socket. So if you use it after a chroot() call, MAKE sure that you call openlog() before the chroot.



Discussion

No Comment Found