If you want to control users running make, you have three options here.
- Allow them to run it (meaning, do nothing).
- Try to allow them to run it with some filter for catching “special cases”
- Don’t allow them to run it.
Option 1 is obviously not idea, hence the posting of your question to begin with. Option 2 goes against (the user’s perception) of reliability and consistency, because it appears that running make is an okay thing to do, but then “uhoh, this one time…” and so I don’t think is ideal. Option 3 is not perfect because it should be the case that we are helping users to compile and do all the things they need to perform the task at hand.
Let’s step back though, how can we implement 3 (solving the issue) but also do so in a way that supports and educates? In the simplest case, we hide the binary and the user is upset that “make” cannot be found. We get a ticket. But what if we allowed them to find it, but used it to inform them how we wanted make to be used for our cluster? For example:
# --- A Message from Research Computing ---#
# We provide make for you on an interactive node! Please run:
# $ sdev
# to launch your node and try this command again
from a very practical standpoint, this meets requirements to handle the running of make without hurting users, but also educating them how to make the best decision in the future. The next or subsequent time this comes up, they would likely launch sdev without thinking.