Alex Rice wrote:
Regarding
/etc/inetd.conf, /etc/services, TCP and UDP port numbering. An O'Reilly book published in 1991 says:
.... Thus,
regular user programs are restricted to port numbers between 1025 and 32767."


Note that servers like MySQL and PostgreSQL run as their own user (not as root) and run on high numbered ports for security; 3306 and 5432 respectively.

Some servers like Apache, running on port 80, running as user nobody, must startup as root, and change uid after establishing sockets- or something like that.

Presumably Mac OS X and Linux both follow these guidelines as well. I don't know if Windows has the equivalent concept of "super-user" or if it has the same rules for port usage.


Thanks for the RTFM, I did not realize the root restriction was lifted for higher ports. I can say for sure that Windows does not have the restriction, I have tested it.


I need to use UDP port 67 for a bootp server, which is used in one of my user apps for re-installing software on an embedded system (I'm porting to RR). So the program will have to be run as root, I guess.

The other option (sometimes used by http and smtp) is to put the file permissions as set uid root (maybe many are familiar with this) which is a special unix thing that is, by old time unix people, considered a security hole. But this basically sets the ownership of the file to root, and sets it to run as if it were root, but it can be executed by an ordinary user. (It is done with, as root, "chown root filename; chmod u+s filename"). You should also "chmod go-rw filename" so that a regular user cannot modify it and do something bad.

But nothing is as bad as Windows, so I guess this is an option.

-Steve

_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to