Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Mar 2017 02:05:26 +1100 (EST)
From:      Ian Smith <smithi@nimnet.asn.au>
To:        Wayne Sierke <ws@au.dyndns.ws>
Cc:        David Mehler <dave.mehler@gmail.com>, Ralf Mardorf <ralf.mardorf@rocketmail.com>, freebsd-questions@freebsd.org
Subject:   Re: Two pf questions
Message-ID:  <20170330012122.B88822@sola.nimnet.asn.au>
In-Reply-To: <mailman.91.1490788802.60884.freebsd-questions@freebsd.org>
References:  <mailman.91.1490788802.60884.freebsd-questions@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
In freebsd-questions Digest, Vol 669, Issue 4, Message: 4
On Wed, 29 Mar 2017 13:09:02 +1030 Wayne Sierke <ws@au.dyndns.ws> wrote:
 > On Tue, 2017-03-28 at 20:29 +0200, Ralf Mardorf via freebsd-questions
 > wrote:
 > > Hi,
 > > 
 > > while I won't add such an exit status loop as I mentioned by an earlier
 > > reply, I still would be careful with file names in /tmp and also
 > > consider to make the commands of a "command chain" conditional of the
 > > preceding commands.

You can do the latter as long as you have clear indication of just which 
command went wrong, if one does.  Sometimes functionality beats elegance 
and David's script did its job; but on the point about tempfile naming:

 > > Instead of
 > > 
 > > ? cp /etc/pf/bruteforce /tmp/foobar.txt
 > > ? pfctl -t bruteforce -T show >> /tmp/foobar.txt
 > > ? sort -u -n /tmp/foobar.txt > /etc/pf/bruteforce
 > > 
 > > I would use something similar to
 > > 
 > > ? tmp_suffix="-$$-$(mcookie)"
 > > ? cp /etc/pf/bruteforce /tmp/bruteforce$tmp_suffix && \
 > > ? pfctl -t bruteforce -T show >> /tmp/bruteforce$tmp_suffix && \
 > > ? sort -u -n /tmp/bruteforce$tmp_suffix > /etc/pf/bruteforce
 > > 
 > > I wouldn't use $$ and $(mcookie) together, perhaps just $(mcookie) or $$
 
[ Is mcookie(?) a Linux thing?  Or something newer than FreeBSD 9? ]

 > > plus the date and time including seconds or something else unique or
 > > at least add "$(id -u)" to the PID. "-$$-$(mcookie)" is just an example,
 > > as "foobar.txt" was just an example, too.

Adding datestamps or such to a tempfile that is to be deleted in a 
millisecond or so seems rather overkill when $$ is already unique.

 > > Regards,
 > > Ralf
 > 
 > Is there any reason that mktemp(1) is not adequate here, or not
 > desireable?

None at all.

 > Perhaps this:
 > 
 > bf_temp=`mktemp -t bruteforce.`
 > cp /etc/pf/bruteforce ${bf_temp} ...
 > etc.

Sure, or even just:

tempfile=/tmp/`basename $0`.$$

David's script really only needed one tempfile name, overwritten by his 
second stanza, and then deleted.  Even if there were two of this script 
running at the same time (an error in any case) they have unique PIDs. 

And non-deleted tempfiles can be useful signals or debugging aids :)

cheers, Ian



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170330012122.B88822>