gnunet-setup is a gtk+ based GUI for configuring GNUnet.
The first time you run gnunet-setup, the goal will typically be to configure the peer, that is, the set of processes that always run in the background. Those processes should run as user "gnunet" and thus gnunet-setup should be run as user "gnunet" for this step. Use the "-e" option to enable automatic privilege escalation using gksu (if supported by your system). Alternatively, you can of course run gnunet-setup from the "gnunet" system user account or even as "root". If you see a tab "General", you did start gnunet-setup correctly to configure the peer. You should now be able to configure which subsystems of GNUnet you want to enable, which databases to use and what your network configuration looks like. After these steps are complete, you should be able to start your peer using "gnunet-arm".
It is recommended that "/etc/gnunet.conf" should be a world-readable copy of the peer's GNUnet configuration. Note that GNUnet configuration files (as generated by gnunet-setup) only contain those values that differ from the defaults. Also note that "gnunet-arm" will by default look for a configuration in "$HOME/.config/gnunet.conf" (or, "$XDG_CONFIG_DIR/gnunet.conf" if "$XDG_CONFIG_DIR" is set); thus, if your configuration is in "/etc/gnunet.conf", you have to pass "-c /etc/gnunet.conf" to gnunet-arm or set "$XDG_CONFIG_DIR" to "/etc/".
Many options in gnunet-setup are documented online. Access the online help by first selecting the respective widget and then clicking on the link at the bottom of the dialog.