Answer Posted / chaitanya
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.
| Is This Answer Correct ? | 0 Yes | 0 No |
Post New Answer View All Answers
What's better 6pt or 12pt sockets?
Are unix sockets faster than tcp?
What is the difference between SO_REUSEADDR and SO_REUSEPORT?
What is socket address with example?
Where is the socket located?
What is sae socket?
What pieces of information make up a socket?
Can a socket have multiple ports?
How is a socket created?
Why do we need socket programming?
How do I convert a string into an internet address?
What is af_inet in socket?
How many sockets can a cpu have?
What is a sae socket?
What are the pros/cons of select(), non-blocking I/O and SIGIO?