Generally, administrative permission is required to access ports 1023 and below. (There are other reasons to run as an administrator, but that's great.) But here's the thing: you can start as an administrator, bind a socket, and then drop to be a user.
Now why do you want to be a user? Well, if you run with the minimum number of permissions, and your program is compromised, then the damage will be contained.
source share