The right approach is to use the permission drop features of rsyslog to make
it itself run as non-root. I v6, it will run as root only to open critical
things (like the UDP ports) and then drops privileges (in a way that never
can be undone without a full restart).

HTH
Rainer

> -----Original Message-----
> From: [email protected] [mailto:rsyslog-
> [email protected]] On Behalf Of Michael Maymann
> Sent: Tuesday, January 31, 2012 3:02 PM
> To: [email protected]
> Subject: [rsyslog] rsyslog as non-root user
> 
> Hi,
> 
> I have now setup a 6.3.6-devel rsyslog server that is working fine running
as
> root.
> I would like to run it as non-root user as my logfiles are located on NFS
(and
> root export of NFS is generally not a good idea !).
> 
> Here is my rsyslog.conf:
> #LOAD MODULES
> $ModLoad imudp
> $UDPServerRun 514
> $UDPServerAddress 127.0.0.1
> $ModLoad imtcp
> $InputTCPServerRun 514
> #SET DESTINATION FOR LOGS
> $template
> DYNmessages,"<PATH_TO>/%FROMHOST%/%FROMHOST%_%$YEAR%.%$
> MONTH%_messages"
> $template
> DYNsecure,"<PATH_TO>/%FROMHOST%/%FROMHOST%_%$YEAR%.%$MO
> NTH%_secure"
> $template
> DYNmaillog,"<PATH_TO>/%FROMHOST%/%FROMHOST%_%$YEAR%.%$MO
> NTH%_maillog"
> $template
> DYNcron,"<PATH_TO>/%FROMHOST%/%FROMHOST%_%$YEAR%.%$MONT
> H%_cron"
> $template
> DYNspooler,"<PATH_TO>/%FROMHOST%/%FROMHOST%_%$YEAR%.%$MO
> NTH%_spooler"
> $template
> DYNboot,"<PATH_TO>/%FROMHOST%/%FROMHOST%_%$YEAR%.%$MONT
> H%_boot.log"
> $template
> DYNtraps,"<PATH_TO>/%FROMHOST%/%FROMHOST%_%$YEAR%.%$MONT
> H%_traps"
> #SET LOGGING CONDITIONS
> if $syslogseverity <= '6' then ?DYNmessages if $syslogfacility-text ==
> 'authpriv' then ?DYNsecure if $syslogfacility-text == 'mail' then
?DYNmaillog if
> $syslogfacility-text == 'cron' then ?DYNcron if $syslogseverity-text ==
'crit'
> then ?DYNspooler if $syslogfacility-text == 'local7' then ?DYNboot if
> $syslogfacility-text == 'local6' and $syslogseverity-text == 'WARNING'
> then ?DYNtraps
> 
> Here is my logfile when I try to start rsyslog as a non-root user:
> 2012-01-31T15:45:52.997693+02:00 <hostname> rsyslogd: [origin
> software="rsyslogd" swVersion="6.3.6" x-pid="26185" x-info="
> http://www.rsyslog.com";] start
> 2012-01-31T15:45:52.997294+02:00 <hostname> rsyslogd: bind: Permission
> denied
> 2012-01-31T15:45:52.997369+02:00 <hostname> rsyslogd: bind: Permission
> denied
> 2012-01-31T15:45:52.997374+02:00 <hostname> rsyslogd: No UDP listen
> socket could successfully be initialized, message reception via UDP
disabled.
> 2012-01-31T15:45:52.997376+02:00 <hostname> rsyslogd: imudp: no listeners
> could be started, input not activated.
> 2012-01-31T15:45:52.997379+02:00 <hostname> rsyslogd3: activation of
> module imudp failed [try http://www.rsyslog.com/e/-3 ]
> 2012-01-31T15:45:52.997643+02:00 <hostname> rsyslogd-2077: Could not
> create tcp listener, ignoring port 514. [try http://www.rsyslog.com/e/2077
]
> 
> So permissions to bind and sockets seems to be the problem...
> 
> 1. Is it possible to make rsyslog write logfiles as a non-root user - if
> yes: how ?
> 2a. Is it possible to add permissions for non-root user to run rsyslog
server - if
> yes: how ?
> 2b. How do I start rsyslog during boot as non-root user - can chkconfig do
this
> ? do I need to edit /etc/init.d/rsyslog - if yes: how ?
> 
> 
> Thanks in advance :-) !
> ~maymann
> _______________________________________________
> rsyslog mailing list
> http://lists.adiscon.net/mailman/listinfo/rsyslog
> http://www.rsyslog.com/professional-services/
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/

Reply via email to