Recently I had to come up with a list of questions and a format for a sysadmin interview. From past experiences and talking to colleagues I found quite a few possible approaches and reasons, but there still are some common rules interviewers should keep in mind.
Use an email quiz to filter out the fakes and save heaps of time. We had a vacancy for a more senior role a while ago and received lots of good CVs. Barely the 2% of the applicants we sent the quiz to came back to us with decent answers, some wouldn't even finish it! Something easy is enough, we asked to describe a step-by-step backup restoration and to do some reformatting on a csv file.
Never scare them! Some people have an hard time during interviews but perform very well when on the job. Obviously you want to consider the emotional factor,especially for a sysadmin, which more than others might end up having to carry out critical tasks under pressure. But don't forget that the type of stress is different, and responding badly to one doesn't mean responding bad to the other, and vice-versa.
Avoid questions that can be answered with a RTFM! Otherwise it's cheaper to buy a parrot and read man-pages to it before bed time. As usual there are limits, some commands and options should be known. But try to prove they can use their brain rather than just remembering things. Possibly come up with problem-solving oriented questions, put together a bunch of different log files and ask them to reconstruct what happened; or ask them to explain you how they would deploy software to a large number of machines.
Leave questions as open as possible, you're moreinterested to understand their approach and attitude rather than in the actual answers (again, this is true to some extent, catch my drift). Invite them to think aloud, that generally works.
Find out if they are passionate about the subject, ask them about their distribution and why they use it (this is also a good way to spot zealots, avoid them as plague!). Ask them why they want to work as sysadmin and if they have particular reasons to apply for a position within your company.
If your company is mostly based on FLOSS, find out their knowledge and interest in free libre software, that is also a good indicator of passion.
Down to the questions (bear in mind the target was a junior admin):
- Test their knowledge of the "community", who's Linus Torvalds; Richard Stallman; Alan Cox; Eric Raymond, and maybe another few big names like Tanenbaum and Theo De Raadt.
- Do you run Linux at home?
- What distribution, why?
- What project are you most proud of?
- Why are you leaving your current job?
- Why do you want this job?
- Why should we hire you?
- What is a sysadmin?
This is highly optional, but I'm possibly looking for a geek, and any person applying for a sysadmin position should be able to answer at least the first 2 questions.
- Can you expand RTFM? BOFH?
- What's the last man page you've read?
- Do you read any webcomics?
Generic linux questions
- What are setuid/setgid in relation to file permissions?
- What are setuid/setgid in relation to directory permissions?
- What is an inode?
- What does init do? What does inetd do?
- What’s PGP/GPG; Public/Private Key cryptographic systems
- What’s ssh? Setting up trust between accounts.
- How does ssl work?
- What are different directories in / for?
- What to do , if the newly build kernel does not boot.?
- Do you know what source management is? have you used it? what software?
- How does the boot process (init levels) work on Linux
Things we need
Depending on your business there might be some piece of software you heavily use, hence have particular interest for the candidate's knowledge about it Have you used Apache? Talk to me about it. In my case we primarily do web based services so I ask about apache and mysql.
- What do you know about configuring and/or compiling Apache;
- Virtual Hosts?
- .htaccess files?
- mod_perl? mod_php?
- log files and log management
- Are you familiar with SQL?
- Do you know about indexes?
- Can you name and explain some of the tables in the mysql database
CliWe send an email quiz before the interview which includes a scripting test. You might want to setup one for the interview, generally parsing CSV files is a good one.
- What shell do you use?
- do you know any other?
- Name some basic shell command like cut and explain what they do
- Which editor? vim/emacs/something else
File systems and disks
- What is the big difference between ext2 and ext3?
- What about xfs?
- Partitions layout
- Different raid levels
- What’s a hub?
- Problems with hubs
- What’s a switch?
- What’s a router?
- What’s the difference between UDP and TCP?
- How would you find what ports are open on a machine (local and remote)?
- What’s the OSI model? What are the seven levels?
- How would you capture network traffic?
- What’s a VLAN?
- How does DNS work?
- How does FTP work?
- How does SMTP work?
- What's traceroute?
- Do you know what a chroot is?
- Do you know what a BoF is?
- Do you know what an sql injection is?
- Do you know what a DoS attack is?
- Do you know what a botnet is?
- What firewall applications have you used?
- Can you name the problems of firewalling ftp?