I was bored the other day and decided that i wanted to learn more about redhat's chkconfig system, and figured i would use teamspeak as my guinie (no idea how to spell) pig. I got it working to the point of it starting on runlevels 3,4, and 5, and i can use "service teamspeak {start|stop|restart|status}, but I had to compromise to get it to work.
i wanted to create an application ID / group to manage the permisions, and not have it run as root. I set the teamspeak user's default shell to /sbin/nologin, and here is where i got stuck (i fixed it by giving him bash later, though i'd prefer nologin.)

When trying to get the application to run, it stoped because i was trying to execute as root (i could have hacked the script to alow me to, but i agree that it is a security risk, and i was trying to learn.) I tried writing my /etc/init.d/teamspeak script to execute "su - teamspeak -c "/usr/teamspeak/server_linux {start|stop|restart|status} (or whatever the actualy script is,) but it wouldn't work because of the nologin (user is not accessable). I know you can have services run as a user with /sbin/nologin, because httpd runs as apache. so, to summarize 2 paragraphs in 1 line;

"how do i get my service to run as user "teamspeak", while denying shell acces?"

thanks much.