After the chroot(), calls to socket() are failing

After the chroot(), calls to socket() are failing

  From Andrew Gierth (andrew@erlenstar.demon.co.uk):

  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; I can't help you there (sorry).  (Editors note:
  Adrian Hall (adrian@waltham.harvard.net) 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.



Home
FAQ