Today is 2017-07-28, and it’s #SysAdminDay.
Why not stop by IT for a cheery chat?
Here’s how to hold your own if you do…
How to hack influence a sysadmin
First, don’t be afraid.
It’s easy to be daunted, but sysdamins are more like the rest of us than we sometimes realise.
After all, anyone over 18 can lawfully get a tattoo, although yours probably won’t be written in hexadecimal; death metal is pretty much mainstream in 2017, so it’s not exactly anarchic or reactionary any more; and cammo trousers are practically formal wear these days.
Second, sysadmins are so smart that they don’t actually know how smart they are.
Third, all sysadmins are weakened by one irremediable prejudice: they think that there is one, and only one, valid programming language for all system administration tasks.
All you have to do is find out which language it is, somehow let it slip that you feel the same way, and you’re golden – you’ll have plenty to talk about (by which we mean you’ll have plenty to listen to), and you’ll never have to configure your own wireless router ever again!
We’ve published a handy guide to help you fathom some of the top sysadmin languages, and match them to the victims sysadmins whom you want to hack influence inside your organisation.
1. PERL
Perl is a compact, verbose, easy-to-learn, complex, effective and utterly confusing language that is so powerful that it can solve every known problem in computer science, which is a jolly good thing because most of those problems have arisen because of Perl. No programming task can more easily be complicated than by coding it in Perl.
If Perl were a beard, it would be Zakk Wylde’s. In fact, Perl would be two beards, or perhaps even three, given the official motto of the language, and the fact that many Perl programs contain text that looks like use strict; my $error;
or use Carp; die("BOMBED");
Language motto: There’s more than one way to do it.
2. PYTHON
Python is a literate, legible, powerful and flexible language designed to avoid the lowbrow pugnacity of Perl. It sounds pretentious to say it, but Python is the “thinking man’s” Perl – indeed, it’s the language you use because you think it will deliver you a more robust solution in a fraction of the time. And you’re right, except that the fraction will be 8/3 (267%), or close to three times as long.
Python is one of very few programming languages in which the meaning of a line of code is determined by how many spaces there are at the start. This is very similar to the notion that indenting a series of incomplete, inept and illiterate sentences and turning them into PowerPoint bullets magically makes them insightful.
Language motto: Python doesn’t have a motto. It has Zen. (True.)
3. BASH
Bash isn’t really a programming language, not least because it has grown so complicated that it is no longer possible to describe the language in formal terms – you can’t write down what techies call its parsing grammar.
Bash code is illegible, imprecise, incomprehensible, insecure, unmaintainable and grindingly slow, to the point that it is enviably egalitarian. Indeed, all Bash programs have the same quality: none. Bash is so desirably dreadful that Microsoft now officially supports it on Windows 10.
Language motto: BUGS: It’s too big and too slow. (Official bash man page.)
4. POWERSHELL
Powershell is Microsoft’s seventeenth attempt to introduce a script-based programming language for Windows sysadmins. It is far and away the weirdest, the most convoluted, the most annoying and the hardest to learn. Powershell makes Applescript look crisp, clean, clear and purposeful.
But here’s the thing: Powershell is perfectly named. It is a shell, and it gives you POWER. Real, unbridled, scary, interplanetary sysadministrative power. For the first time ever, Unix sysadmins are looking at their Windows cousins and saying, “If only I could do that.”
Language motto: Because POWER!
5. JAVA
You may be surprised to hear this, given the reputation of Java, but sysadmins secretly love Java to bits.
Hahahahahahahahahahahahahaha. Only kidding.
Language motto: Careful with that axe, Eugene.
Not on the list?
If you can’t figure out what language best fits the sysadmin you are targeting, you may need to fall back on what are known as esolangs: programming languages that are weird and wacky on purpose.
Just drop the name of one of them into casual conversation every once in a while when the sysadmin you are targeting is around, and have patience.
Eventually you will hit the spot, and you’re done.
Example: “Imagine trying to program that in Befunge!” (Give a wry but happy smile at this point.)
Happy #SysAdminDay!
David Pottage
I like the amusing factoids about programming languages, but if you pretend to love a language you know nothing about, you will get found out almost immediately, when the sysadmin asks for a second pair of eyes to spot the bug that has been eluding him all morning!
Franky, you would be better of talking about the language you hate, (PHP or visual basic are common bugbears), because most sysadmins will firstly agree with you, and secondly not expect you to know any technical details.
Another reliable option, is simply to bribe your sysadmin with food, especially anything sweet and home baked.
Paul Ducklin
You are over-thinking this. You don’t have to pretend to love anything, or even to know anything about it. You just have to allow it to be inferred that you know *that it is the one true way*, especially if you imply that you appreciate how truly dreadful it is *yet do not care*.
(As an aside, we were thinking of including PHP, but we decided it isn’t really a sysadmin language to love or hate, any more than JavaScript – it’s more of an “someone else’s problem” problem. No sysadmin wants to be misrecognised as a web developer. That’s like mixing up Liverpool and Everton.)
And there are two reasons why you won’t be caught out when the sysadmin asks for a second pair of eyes to spot that bug. Those reasons are:
1. With many eyes, all bugs are shallow, so when you remember that too many cooks spoil the broth, it follows that with one pair of eyes, all bugs are patently obvious. So who needs you?
2. What bug?
As mentioned in the article, if you pick the right language to embrace, you can enjoy a lengthy and far-ranging discussion about it…without needing to say any words not in this set: { ‘uh-huh’, ‘word’, ‘mmmm’, ‘yes’ }.
Tom
Thanks Paul. Nice run down of some frequently used languages, and Bash. How popular is Lua?
Paul Ducklin
Lua is extremely popular, but I doubt many sysadmins use it as a standalone scripting language as they might use Perl or Python or Powershell, which are bountifully supplied (or needlessly burdened, as the Lua faithful might say :-) with libraries for everything and anything.
But Lua is the scripting language inside many cool tools such as Nmap and Wireshark…so it is more widely used and loved than you might at first think, albeit that it isn’t hot property as what you might call a primary, command-line scripting tool.
We do like Lua here at Naked Security (that’s the royal plural, at least), and that’s a matter of public record. You will see that a lot of the pseudocode we use in technical articles is Lua-esque, not C-esque [*]; you will find it used in the official solutions of some of our previous puzzles; and we once gave the creator of Nmap a T-shirt featuring a design that was generated with a Lua program:
https://nakedsecurity.sophos.com/2011/12/06/popular-security-tool-nmap-at-the-middle-of-a-security-brouhaha/
[*] Call me old fashioned, but when you are writing for non-techies who program a bit, but not for a living or even every day, I find it much clearer to illustrate an iterative loop like this:
for n = 1,10 do
-- count to 10
end
…than to get all Dijkstrified and write:
for (n = 0; n < 10; n++) {
/* Count to ten but be self-righteous about it */
}
cgutteridge
Nah, there’s a quicker way “I spoke to the other sysprog(s) and they said there’s no way to solve my problem”. Who can resist proving that they are the sysproggiest of them all?
Paul Ducklin
You don’t need to prove axioms. In fact, by definition, you can’t. So this approach doesn’t work.
What happens is this:
Q. I spoke to the other sysadmins and they said my problem can’t be solved.
A.
(There is no question. Therefore it is incorrect to provide an answer. If you listen carefully you have might hear the sound of one of the videos we linked to above, leaking out of the sysadmin’s headphones. Don’t take it as an insult – in fact, take the advice it is implicitly offering. You could easily hurt yourself with that axe.)
Mahhn
Another sys admin hack: 20 years ago my dad told me he was having problems with his laptop and the techs weren’t solving his problems. I told him this works on us so: find out what their favorite cookies are, get good quality ones, go to their office and tell them the story that I told him to bring them cookies. They enjoyed the cookies and story, and almost needless to say, all his computer issues got solved :)
Paul Ducklin
I guess they were session cookies, given that they were gone afterwards :-)
sdglhm
Get out. <3
zactower79
This article is Awesome! You made my morning, Thanks!!
Anonymous
i used to code in mspaint
Paul Ducklin
Were you programming in the language “Piet”? (It is an esolang named after Piet Mondrian, and represents program code using blocks of colour.)
Andy
The best way to deploy influence is beerware. There’s two options, if it works, buy your admin a beer. If it doesn’t work, buy a pitcher and something will be done about it. If you need to escalate, include food.