It is unusual to get a "Permission denied" message when running a command using sudo
. I might check that SELinux isn't installed/enabled.
The usual reason a network service fails to bind to a port is because the TCP port is already in use by some other service. The usual way to check this is
$ sudo netstat -plnt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 :::80 :::* LISTEN 3944/httpd tcp 0 0 :::22 :::* LISTEN 3834/sshd tcp 0 0 :::443 :::* LISTEN 3944/httpd
Here we can see that port 80 is already in use by the httpd program.
If there is a better explanation, someone will be along soon to downvote this answer and post a more useful one :-)