Re:HardCIDR will query ARIN and a pool of BGP route servers
by joshka on Saturday March 18, 2017 @03:57AM
(#13900387)
You seem to have a good eye for picking up problems in scripts, and enough of an interest to write about it. Have you considered submitting a PR with your suggested changes, or if you don't have time for that, perhaps an issue with your problems?
Re:HardCIDR will query ARIN and a pool of BGP route servers
by natch on Saturday March 18, 2017 @12:05PM
(#13901880)
No, because the README for this project leaves me having utterly no idea who the audience is, what it is for, why it exists, etc., so I wouldn't feel I have the right background to do a proper PR against it.
Re:HardCIDR will query ARIN and a pool of BGP route servers
by CJefferson on Saturday March 18, 2017 @11:00AM
(#13901536)
I wish modern OSes made this easier. I would love to have an easy bullrtproof way of saying "give me a temp directory for writing, don't let me write anywhere else, clean up my directory after me".
Re:HardCIDR will query ARIN and a pool of BGP route servers
by cheeseprocedure on Saturday March 18, 2017 @11:30AM
(#13901668)
Chances are that every system this script runs on has "mktemp," and trapping exit makes it easy to clean up when things are finished.
Re:HardCIDR will query ARIN and a pool of BGP route servers
by peterwwillis on Saturday March 18, 2017 @11:54AM
(#13901810)
Yep, makes it much simpler to write scripts like this https://github.com/psypete/public-bin/blob/public-bin/src/st... (run an application that's stored in git, but in a temp working directory, and clean up after)
Re:HardCIDR will query ARIN and a pool of BGP route servers
by CJefferson on Saturday March 18, 2017 @06:03PM
(#13903748)
But, how can I make super sure some combination of my mistakes, undefined variables, failed cd commands, race conditions, etc, can't lead to me clearing the wrong directory.
I'm sure this is excessive paranoia, but I have never been confident to release a script that classes a directory, I'm to worked about things like subtle differences in how mktemp works on linux and mac for example.
Re:HardCIDR will query ARIN and a pool of BGP route servers
by stuuuuuuuuu on Saturday March 18, 2017 @01:06PM
(#13902247)
A good usecase for Docker, maybe? Put the script in a container and let it run wild, then delete the container when it's done.
Re:HardCIDR will query ARIN and a pool of BGP route servers
by the8472 on Saturday March 18, 2017 @12:23PM
(#13901981)
on linux the following might work:
- enter a user and mount namespace
- mount a tmpfs, e.g. over /tmp
- remount everything else as readonly
alternatively firejail --overlay-tmpfs <command>
Re:HardCIDR will query ARIN and a pool of BGP route servers
by LinuxBender on Saturday March 18, 2017 @03:35AM
(#13900328)
That is bad. One should always use
set -u
on scripts that rm any files or perform any destructive actions. One can always unset that if you need to accept args further along in a script to use in a variable.
If you have a subdirectory where you run it named after your email hostname (such as "example/" for "example.com"), then it will prompt you to "overwrite the contents of the directory" and then, if you accept, it will not only overwrite the contents, it will remove the entire contents with:
There's a slight violation of user expectations here. Removing and replacing the contents isn't quite the same as overwriting the contents. It may be a fine line, but it's better to err on the side of protecting the user's files, not deleting them, when deciding where to come down on that fine line.And if $outdir is empty or not there, it tries to detect that by first doing a check for -d $outdir, but this won't save the user if $outdir gets moved aside by another process while they are reading the prompt and before the cd happens, leaving them in another directory. Hopefully the user has rm aliased to rm -i but that still won't help since the rm is being run in its own shell in the script.
I know we're not supposed to focus on the negative here on HN. I'm sure the script is awesome for whatever it does. Just be careful out there!