![]() |
4.8 How can I bind() to a port number < 1024?
4.8 How can I bind() to a port number < 1024?
From Andrew Gierth (andrew@erlenstar.demon.co.uk): The restriction on access to ports < 1024 is part of a (fairly weak) security scheme particular to UNIX. The intention is that servers (for example rlogind, rshd) can check the port number of the client, and if it is < 1024, assume the request has been properly authorised at the client end. The practical upshot of this, is that binding a port number < 1024 is reserved to processes having an effective UID == root. This can, occasionally, itself present a security problem, e.g. when a server process needs to bind a well-known port, but does not itself need root access (news servers, for example). This is often solved by creating a small program which simply binds the socket, then restores the real userid and exec()s the real server. This program can then be made setuid root. |
| All times are GMT. The time now is 11:45 PM. |
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.