November 25, 2025
11 min read

Junior System Administrator Interview Questions: Complete Guide

interview
career-advice
job-search
entry-level
Junior System Administrator Interview Questions: Complete Guide
MB

Milad Bonakdar

Author

Master essential system administration fundamentals with comprehensive interview questions covering Linux, Windows, Active Directory, troubleshooting, and core IT concepts for junior sysadmin roles.


Introduction

System Administrators are responsible for maintaining, configuring, and ensuring reliable operation of computer systems and servers. As a junior sysadmin, you'll need foundational knowledge of Linux, Windows, networking, and troubleshooting to support IT infrastructure.

This guide covers essential interview questions for junior system administrators, focusing on practical skills and core concepts.


Linux Fundamentals

1. What are the most common Linux commands you use daily?

Answer: Essential commands for system administration:

# File and Directory Management
ls -la          # List files with details
cd /path        # Change directory
pwd             # Print working directory
mkdir folder    # Create directory
rm -rf folder   # Remove directory
cp source dest  # Copy files
mv old new      # Move/rename files

# File Viewing and Editing
cat file.txt    # View file contents
less file.txt   # View file with pagination
tail -f /var/log/syslog  # Follow log file
vi/nano file.txt  # Edit files

# Permissions
chmod 755 file  # Change permissions
chown user:group file  # Change ownership
ls -l           # View permissions

# Process Management
ps aux          # List all processes
top/htop        # Monitor processes
kill PID        # Terminate process
systemctl status service  # Check service status

# System Information
df -h           # Disk usage
free -h         # Memory usage
uptime          # System uptime
uname -a        # System information

Rarity: Very Common
Difficulty: Easy


2. How do you troubleshoot a Linux server that's running slowly?

Answer: Systematic approach to performance issues:

1. Check CPU Usage:

top
# Look for processes using high CPU
# Press 'P' to sort by CPU usage

# Or use htop for better visualization
htop

2. Check Memory:

free -h
# Check if swap is being used heavily

# Find memory-hungry processes
ps aux --sort=-%mem | head -10

3. Check Disk I/O:

iostat -x 1
# Look for high %util

# Check disk space
df -h

# Find large files
du -sh /* | sort -rh | head -10

4. Check Network:

netstat -tuln  # Active connections
ss -s          # Socket statistics

5. Review Logs:

tail -f /var/log/syslog
journalctl -xe  # Systemd logs
dmesg | tail    # Kernel messages

Rarity: Very Common
Difficulty: Medium


3. How do you schedule automated tasks using cron?

Answer: Cron is a time-based job scheduler in Unix-like systems.

Cron Syntax:

┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-6, Sunday=0)
│ │ │ │ │
* * * * * command to execute

Common Examples:

# Edit crontab
crontab -e

# Run backup every day at 2 AM
0 2 * * * /home/user/backup.sh

# Run script every Monday at 9 AM
0 9 * * 1 /home/user/weekly-report.sh

# Run every 15 minutes
*/15 * * * * /home/user/check-status.sh

# Run on first day of every month
0 0 1 * * /home/user/monthly-cleanup.sh

# Run every weekday at 6 PM
0 18 * * 1-5 /home/user/end-of-day.sh

# List current cron jobs
crontab -l

# Remove all cron jobs
crontab -r

Special Strings:

@reboot    # Run once at startup
@daily     # Run once a day (0 0 * * *)
@hourly    # Run once an hour (0 * * * *)
@weekly    # Run once a week (0 0 * * 0)
@monthly   # Run once a month (0 0 1 * *)

# Example
@daily /home/user/daily-backup.sh

Cron Job Logging:

# Redirect output to log file
0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1

# Send email on errors only
0 2 * * * /home/user/backup.sh 2>&1 | mail -s "Backup Failed" admin@company.com

Windows Task Scheduler:

# Create scheduled task
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\backup.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At 2am
Register-ScheduledTask -TaskName "Daily Backup" -Action $action -Trigger $trigger

# List scheduled tasks
Get-ScheduledTask

# Run task immediately
Start-ScheduledTask -TaskName "Daily Backup"

# Disable task
Disable-ScheduledTask -TaskName "Daily Backup"

Best Practices:

  • Use absolute paths in scripts
  • Set PATH variable in crontab
  • Test scripts manually first
  • Log output for debugging
  • Use locking to prevent overlapping runs

Rarity: Very Common
Difficulty: Easy-Medium


Windows & Active Directory

3. What is Active Directory and what are its main components?

Answer: Active Directory (AD) is Microsoft's directory service for Windows networks.

Main Components:

Loading diagram...

Key Concepts:

  • Domain: Administrative boundary
  • Domain Controller (DC): Server hosting AD
  • Organizational Units (OUs): Containers for objects
  • Users/Groups: Identity management
  • Group Policy: Centralized configuration

Common Tasks:

# Create user
New-ADUser -Name "John Doe" -SamAccountName jdoe -UserPrincipalName jdoe@domain.com

# Add user to group
Add-ADGroupMember -Identity "IT Staff" -Members jdoe

# Reset password
Set-ADAccountPassword -Identity jdoe -Reset

# Find locked accounts
Search-ADAccount -LockedOut

# List domain controllers
Get-ADDomainController -Filter *

Rarity: Very Common
Difficulty: Easy-Medium


5. How do you create and manage user accounts in Linux and Windows?

Answer: User management is a core sysadmin responsibility.

Linux User Management:

# Create user
sudo useradd -m -s /bin/bash john
# -m: create home directory
# -s: set shell

# Set password
sudo passwd john

# Create user with specific UID and groups
sudo useradd -m -u 1500 -G sudo,developers john

# Modify existing user
sudo usermod -aG docker john  # Add to group
sudo usermod -s /bin/zsh john  # Change shell
sudo usermod -L john  # Lock account
sudo usermod -U john  # Unlock account

# Delete user
sudo userdel john  # Keep home directory
sudo userdel -r john  # Remove home directory

# View user info
id john
finger john
cat /etc/passwd | grep john

Group Management:

# Create group
sudo groupadd developers

# Add user to group
sudo usermod -aG developers john

# Remove user from group
sudo gpasswd -d john developers

# Delete group
sudo groupdel developers

# List user's groups
groups john

File Permissions:

# Change ownership
sudo chown john:developers /var/www/project
sudo chown -R john:developers /var/www/project  # Recursive

# Change permissions
chmod 755 script.sh  # rwxr-xr-x
chmod u+x script.sh  # Add execute for user
chmod g-w file.txt  # Remove write for group
chmod o-r file.txt  # Remove read for others

# Special permissions
chmod 4755 file  # SUID
chmod 2755 dir   # SGID
chmod 1777 /tmp  # Sticky bit

Windows User Management:

# Create local user
New-LocalUser -Name "John" -Password (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force)

# Create AD user
New-ADUser -Name "John Doe" `
    -GivenName "John" `
    -Surname "Doe" `
    -SamAccountName "jdoe" `
    -UserPrincipalName "jdoe@company.com" `
    -Path "OU=Users,DC=company,DC=com" `
    -AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force) `
    -Enabled $true

# Add to group
Add-ADGroupMember -Identity "IT Staff" -Members jdoe

# Modify user
Set-ADUser -Identity jdoe -Department "IT" -Title "System Administrator"

# Disable account
Disable-ADAccount -Identity jdoe

# Reset password
Set-ADAccountPassword -Identity jdoe -Reset -NewPassword (ConvertTo-SecureString "NewP@ss" -AsPlainText -Force)

# Remove user
Remove-ADUser -Identity jdoe

Bulk User Creation:

#!/bin/bash
# Create multiple users from file
while IFS=, read -r username fullname; do
    sudo useradd -m -c "$fullname" "$username"
    echo "$username:TempPass123" | sudo chpasswd
    sudo chage -d 0 "$username"  # Force password change
    echo "Created user: $username"
done < users.csv

Rarity: Very Common
Difficulty: Easy


Networking Basics

6. Explain DNS and DHCP.

Answer:

DNS (Domain Name System):

  • Translates domain names to IP addresses
  • Hierarchical system
  • Uses port 53

DHCP (Dynamic Host Configuration Protocol):

  • Automatically assigns IP addresses
  • Provides subnet mask, gateway, DNS servers
  • Uses ports 67 (server) and 68 (client)

DNS Troubleshooting:

# Test DNS resolution
nslookup google.com

# Query specific DNS server
dig @8.8.8.8 google.com

# Check DNS cache (Windows)
ipconfig /displaydns
ipconfig /flushdns

# Check DNS cache (Linux)
systemd-resolve --statistics
systemd-resolve --flush-caches

DHCP Troubleshooting:

# Release and renew IP (Windows)
ipconfig /release
ipconfig /renew

# Release and renew IP (Linux)
sudo dhclient -r
sudo dhclient

# Check DHCP lease
cat /var/lib/dhcp/dhclient.leases

Rarity: Very Common
Difficulty: Easy-Medium


Backup & Security

7. What backup strategies would you implement?

Answer: 3-2-1 Backup Rule:

  • 3 copies of data
  • 2 different media types
  • 1 copy offsite

Backup Types:

  • Full: Complete copy (slow, large)
  • Incremental: Changes since last backup (fast, small)
  • Differential: Changes since last full backup (medium)

Example Backup Script:

#!/bin/bash
# Simple backup script

BACKUP_DIR="/backup"
SOURCE_DIR="/var/www"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="backup_$DATE.tar.gz"

# Create backup
tar -czf $BACKUP_DIR/$BACKUP_FILE $SOURCE_DIR

# Keep only last 7 days
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete

# Upload to remote server (optional)
rsync -avz $BACKUP_DIR/$BACKUP_FILE user@backup-server:/backups/

echo "Backup completed: $BACKUP_FILE"

Rarity: Common
Difficulty: Medium


8. How do you secure a server?

Answer: Multi-layered security approach:

1. Keep System Updated:

# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

# CentOS/RHEL
sudo yum update -y

# Windows
Install-WindowsUpdate -AcceptAll

2. Configure Firewall:

# UFW (Ubuntu)
sudo ufw enable
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# firewalld (CentOS)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

3. Disable Root Login:

# Edit SSH config
sudo vi /etc/ssh/sshd_config

# Set:
PermitRootLogin no
PasswordAuthentication no  # Use SSH keys

sudo systemctl restart sshd

4. Monitor Logs:

# Install fail2ban
sudo apt install fail2ban

# Configure fail2ban
sudo vi /etc/fail2ban/jail.local

Rarity: Very Common
Difficulty: Medium


Troubleshooting

9. A user can't access a shared drive. How do you troubleshoot?

Answer: Systematic troubleshooting steps:

1. Verify the Problem:

  • Can you reproduce the issue?
  • Is it affecting one user or multiple?

2. Check Network Connectivity:

# Ping the file server
ping fileserver.domain.com

# Test SMB connectivity
telnet fileserver.domain.com 445

3. Check Permissions:

# Windows: Check share permissions
Get-SmbShareAccess -Name "SharedFolder"

# Check NTFS permissions
Get-Acl "\\server\share" | Format-List

4. Check User Account:

# Verify user is in correct group
Get-ADUser username -Properties MemberOf

# Check if account is locked
Get-ADUser username -Properties LockedOut

5. Check Drive Mapping:

# Windows: List mapped drives
net use

# Remove and remap
net use Z: /delete
net use Z: \\server\share /persistent:yes

6. Check Server:

  • Is the file server running?
  • Is the share still available?
  • Check server logs

Rarity: Very Common
Difficulty: Easy-Medium


10. How do you manage and analyze system logs?

Answer: Log management is critical for troubleshooting and security.

Common Log Locations (Linux):

/var/log/syslog          # System logs (Debian/Ubuntu)
/var/log/messages        # System logs (RHEL/CentOS)
/var/log/auth.log        # Authentication logs
/var/log/kern.log        # Kernel logs
/var/log/apache2/        # Apache web server
/var/log/nginx/          # Nginx web server
/var/log/mysql/          # MySQL database

Viewing Logs:

# View entire log
cat /var/log/syslog

# View last 50 lines
tail -n 50 /var/log/syslog

# Follow log in real-time
tail -f /var/log/syslog

# View with pagination
less /var/log/syslog

# Search in logs
grep "error" /var/log/syslog
grep -i "failed" /var/log/auth.log  # Case insensitive

Systemd Journal:

# View all logs
journalctl

# View logs for specific service
journalctl -u nginx
journalctl -u ssh

# Follow logs
journalctl -f

# View logs since boot
journalctl -b

# View logs for time range
journalctl --since "2024-01-01" --until "2024-01-02"
journalctl --since "1 hour ago"

# View by priority
journalctl -p err  # Errors only
journalctl -p warning  # Warnings and above

# Export to file
journalctl -u nginx --since today > nginx-logs.txt

Log Rotation:

# Configure logrotate
sudo vi /etc/logrotate.d/myapp

# Example configuration
/var/log/myapp/*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 0644 www-data www-data
    sharedscripts
    postrotate
        systemctl reload myapp
    endscript
}

# Test logrotate
sudo logrotate -d /etc/logrotate.d/myapp  # Dry run
sudo logrotate -f /etc/logrotate.d/myapp  # Force rotation

Windows Event Viewer:

# View Application logs
Get-EventLog -LogName Application -Newest 50

# View System logs
Get-EventLog -LogName System -Newest 50

# Filter by error level
Get-EventLog -LogName System -EntryType Error -Newest 20

# Search for specific event
Get-EventLog -LogName Security | Where-Object {$_.EventID -eq 4625}

# Export logs
Get-EventLog -LogName Application | Export-Csv -Path C:\logs\app-logs.csv

Centralized Logging:

# Install rsyslog client
sudo apt install rsyslog

# Configure remote logging
sudo vi /etc/rsyslog.conf
# Add: *.* @@log-server:514

sudo systemctl restart rsyslog

Log Analysis Tools:

  • grep/awk/sed: Command-line parsing
  • GoAccess: Real-time web log analyzer
  • ELK Stack: Elasticsearch, Logstash, Kibana
  • Splunk: Enterprise log management

Rarity: Common
Difficulty: Easy-Medium


Conclusion

Preparing for a junior system administrator interview requires hands-on experience and understanding of core concepts. Focus on:

  1. Linux: Commands, file permissions, process management
  2. Windows: Active Directory, Group Policy, PowerShell basics
  3. Networking: DNS, DHCP, basic troubleshooting
  4. Security: Firewalls, updates, access control
  5. Troubleshooting: Systematic approach, log analysis

Practice in a lab environment and document your learning. Good luck!

Related Posts

Recent Posts

Weekly career tips that actually work

Get the latest insights delivered straight to your inbox