I want to allow a normal user to run NMAP's advanced scans like XMAS, TCP FIN, TCP NULL scans. Can somebody please tell me how to do that ?? Since it uses raw packets so whether setting the setuid bit will work or not ?
Yes, setuid bit should work fine (unless there is some protection in nmap that does not allow it to run with setuid bit enabled, but I don't think so).
Another possible (and in my opinion, much better) option is to configure sudo to allow certain users to run nmap with some similar configuration in /etc/sudoers: