Elegant way to pass arguments to a bash script

When I started to write bash scripts, I found that it was really convenient to use the basic way to pass arguments with $1 $2 and so on.

It’s quick and easy to write, but not very flexible because the argument order maters and you need to write a check condition.

When I discovered the getopts option, it made my scripts way better. In the following example, I added a function named “commands” that executes the command if the dry-run flag is not set and just display the command if not

Another interesting arg is the “set -x” command, that prints all the command executed by the script.

Continue reading “Elegant way to pass arguments to a bash script”

Reverse shell on firewalled server

Sometimes, it may be useful to keep a connection to a server (let’s call it SERVER_1) that is not reachable from the internet because of iptables ingress rules or simply because it doesn’t have a public IP.  You can reach it from another server (let’s name it SERVER_2) that is accessible.

1 – From the server you want to reach (SERVER_1) :

you@SERVER_1:/~ ssh -R 22222:localhost:22 USERNAME@SERVER_2

Continue reading “Reverse shell on firewalled server”