<div dir="ltr"><div><div>Snort startup:<br><br>Here is the line which does not work on snort startup:<br><br>root@...3493...:/usr/local/bin # ./snort -D -i em0 -c /etc/snort/snort.conf -u snort -g snort -l /var/log/snort<br><br>Aug 30 08:56:36 plugh kernel: em0: promiscuous mode enabled<br>Aug 30 08:56:36 plugh snort[3912]: Chroot directory = /var/log/snort/20150830<br>Aug 30 08:56:36 plugh snort[3912]: Set gid to 30000<br>Aug 30 08:56:36 plugh snort[3912]: Set uid to 30000<br>Aug 30 08:56:36 plugh snort[3912]: Checking PID path...<br>Aug 30 08:56:36 plugh snort[3912]: WARNING: _PATH_VARRUN is invalid, trying /var/log/ ...<br>Aug 30 08:56:36 plugh snort[3912]: WARNING: /var/log/ is invalid, logging Snort PID path to log directory (/).<br>Aug 30 08:56:36 plugh snort[3912]: Writing PID "3912" to file "///snort_em0ids.pid"<br>Aug 30 08:56:36 plugh snort[3912]: <br>Aug 30 08:56:36 plugh snort[3912]:         --== Initialization Complete ==--<br><br>using -u snort and -g snort in the startup line causes the above error,<br>probably due to permissions problems, if the -u and -g are omitted,<br>the '/var/run/snort*.pid' file is created normally while running as<br>root:<br><br>Here is a line without the -u and -g parameters invoked:<br><br>root@...3493...:/usr/local/bin # ./snort -D -i em0 -c /etc/snort/snort.conf -l /var/log/snort<br><br>Aug 30 09:09:44 plugh snort[3973]: pcap DAQ configured to passive.<br>Aug 30 09:09:44 plugh snort[3973]: Acquiring network traffic from "em0".<br>Aug 30 09:09:44 plugh snort[3973]: Initializing daemon mode<br>Aug 30 09:09:44 plugh snort[3974]: Daemon initialized, signaled parent pid: 3973<br>Aug 30 09:09:44 plugh snort[3974]: Reload thread starting...<br>Aug 30 09:09:44 plugh snort[3974]: Reload thread started, thread 0x8150e6800 (3974)<br>Aug 30 09:09:44 plugh snort[3974]: Decoding Ethernet<br>Aug 30 09:09:44 plugh snort[3974]: Checking PID path...<br>Aug 30 09:09:44 plugh snort[3974]: PID path stat checked out ok, PID path set to /var/run/<br>Aug 30 09:09:44 plugh snort[3974]: Writing PID "3974" to file "/var/run//snort_em0.pid"<br>Aug 30 09:09:44 plugh snort[3974]: <br>Aug 30 09:09:44 plugh snort[3974]:         --== Initialization Complete ==--<br><br>Here is the same setup on FreeBSD 8.4:<br><br>Aug 30 17:54:47 moocow kernel: em0: promiscuous mode enabled<br>Aug 30 17:54:47 moocow snort[687]: Checking PID path...<br>Aug 30 17:54:47 moocow snort[687]: PID path stat checked out ok, PID path set to /var/run/<br>Aug 30 17:54:47 moocow snort[687]: Writing PID "687" to file "/var/run//snort_em0_ids.pid"<br>Aug 30 17:54:47 moocow snort[687]: Chroot directory = /var/log/snort/20150830<br>Aug 30 17:54:47 moocow snort[687]: Set gid to 40000<br>Aug 30 17:54:47 moocow snort[687]: Set uid to 40000<br><br>As you can see, the gid and uid values are set after the PID path stat is<br>checked for write status, which appears NOT to be the case in FreeBSD 9.x<br>and 10.x, but the version I am using on FreeBSD 8.4 is 2.9.7.0, did anything<br>change in utils.c from 2.9.7.0 to 2.9.7.5 (though the PID should be written<br>before snort is forked as an independent daemon running under -u and -g...<br><br></div>Any ideas here folks?<br><br></div>Bill<br><br></div>