This feature first appeared in the Fall 2019 issue of Certification Magazine. Click here to get your own print or digital copy.
In 1991, Linus Torvalds began developing a UNIX-like operating system on his personal computer. Torvald's initial OS, released as an open source software project, quickly gained in popularity and other interested developers rushed to contribute. Linux has since grown to become the platform of choice for enterprise applications and enterprise IT in general.
According to a Business News Daily article by Ed Tittel and Earl Follis, the Linux operating system is widely used on web servers and has a 54 percent share of the web server operating system market. A sizable part of the Internet runs on Linux, and so do cloud systems and applications, container technologies, DevOps processes, and big data, machine learning, and AI applications.
A Linux server is essentially a souped-up, more powerful version of the Linux open source operating system. Linux servers are the preferred choice of businesses, government organizations, consultancies, and developers because they offer efficiency, stability, flexibility, and security.
With Linux, you can execute all commands from the command prompt. This gives you more control over the system and enables you to achieve optimum system performance. This is why many developers and system administrators prefer Linux. Popular Linux server operating systems include Ubuntu Server, Red Hat Enterprise Linux (RHEL), CentOS, Debian, and others.
Currently, experienced Linux system administrators with knowledge of programming are in demand. Most companies look for system administrators who have experience in installing and maintaining Linux enterprise systems in large virtualized data centers, with distributed systems and applications. Average salaries for Linux system administrators and engineers tend to be higher than those of the typical tech professional.
Essentially, a Linux system administrator is responsible for installing, maintaining, and securing Linux systems in different environments. This is a back-end function that involves a range of server-side operations. Specific responsibilities and tasks depend on I the role, the industry and the nature of business.
Efficient system administration is crucial for an enterprise to stay ahead of competition, achieve business goals and grow. This is why large organizations, as well as some companies in the small-to-midsized-business segment, value experienced and highly-skilled system administrators.
A system administrator's responsibilities generally include the following:
Setting up and configuring Linux servers and systems: A system administrator is responsible for deploying Linux systems in an organization. Tasks include installing servers, networking, defining system architecture, configuring applications and services, helping users get started, and resolving installation issues. An administrator also upgrades, supports, and develops tools for processing and administration.
Managing users and groups: A system administrator creates and manages users and user groups and removes superfluous user accounts. Granting access permissions is also part of the job.
Maintaining the Linux system: System maintenance must be undertaken on a regular basis. Routine maintenance tasks, such as creation of event logs and reporting, can be automated. Senior administrators normally write scripts to automate these tasks. Reviewing logs and resolving errors is part of day-to-day maintenance.
Other maintenance tasks include adding and removing hardware, installing and uninstalling software, and storage management.
Handling backup and recovery: Managing system backups is one of the most important tasks assigned to a system administrator. This includes establishing a backup routine in line with company policy and business requirements and ensuring it is implemented correctly according to schedule. The system administrator is also responsible for maintaining integrity of data and recovery.
Monitoring performance: Regular monitoring helps administrators identify potential problems and address these, so as to prevent sluggish performance and system downtime. It is the administrator's responsibility to ensure daily traffic is logged and reports are generated. The administrator analyses these logs to detect anomalies and develop and implement solutions.
In environments where distributed applications are deployed on a wide scale, it's crucial to regularly do maintenance tuning in order to ensure availability and high performance. Understanding the fundamentals of programming and being able to code is necessary so that an administrator can work with the source code and create programs to enhance performance.
Securing systems and data: Infrastructure and data security are a key priority for organizations today. It's the system administrator's responsibility to ensure security of systems and the network, as well as protect data in the cloud. This requires examining the network and applications for vulnerabilities and addressing them.
The administrator is also responsible to keep track of patch updates and ensure all systems have current patches installed, as well as implement necessary security measures to protect data and systems when making changes to the system.
Troubleshooting and guidance: Providing technical support to users is a key job responsibility. Besides guiding users and resolving issues, administrators also work with developers to assist with platform-related queries as well as network security. Helping users set up and maintain Linux-based apps and debug programs if required is also part of an administrator's job.
The system administrator is responsible for creating and regularly updating documentation for all Linux users. Documentation includes training materials, guidelines and FAQs for end users, maintenance logs, system modification details, and any other information relating to Linux.
Linux systems operation is evolving in line with advances in technology, such as cloud computing, container technologies, DevOps, AI/machine learning and automation, bringing about a corresponding change in the system administrator's role.
Over the last few years, Linux systems administration has evolved to become more development-oriented. Today, it is no longer enough for Linux administrators in some industries to perform day-to-day server administration. Many have to know the fundamentals of coding and be able to develop programs to improve system performance.
Understanding the fundamentals of programming can help an administrator develop workable solutions to routine administrative tasks and problems. Writing scripts, generally for the purpose of automating recurring day-to-day tasks, is already a part of the job for some system administrators.
This is why many organizations require system administrators to be proficient in at least two scripting languages. Widely-used languages include Python, Go, Perl, Bash, and Ruby. Being familiar with tools, such as Puppet and Ansible also helps.
Training and employment background
Most employers require applicants for Linux administrative jobs to have earned at least a bachelor's degree, preferably in IT, engineering, or computer science. A few small and midsized companies may recruit candidates with an associate's degree or occasionally without any degree, but with experience and certification. Most Linux administrators, however, hold a relevant bachelor's degree.
In addition to a degree, relevant experience is often another job requirement, particularly for corporations and government organizations. You need hands-on experience with Linux servers to acquire Linux skills and applicable knowledge.
Working closely with an experienced system administrator can be a highly effective means of developing real-world expertise. This can be accomplished via an internship or junior administrator position, by volunteering to assist an established professional, or by getting transferred to a Linux-oriented department. Once you have earned some working knowledge, you can consider applying for professional positions.
Participating in Linux communities is also an effective way to develop coding skills and knowledge of Linux, while also building and expanding your professional network. There are several online communities of Linux users on GitHub, Stack Overflow, the Linux Foundation, Ubuntu, and elsewhere. It's advisable to research what's available and what is expected of new members before joining.
Many companies require open source certifications for some positions. According to the Open Source Jobs Report 2018 published by the Linux Foundation and Dice, 47 percent of HR managers surveyed said they were more inclined to hire an applicant who had earned a relevant certification than one who wasn't certified. The same report states that 55 percent of employers were helping existing employees meet part of the cost of earning open source certifications.
Depending on the role and the organization, suitable certifications can enhance a candidate's chances of being hired, provided he has the requisite education and hands-on experience.
In-demand certifications include:
LPIC-1: Linux Administrator — This credential is intended for junior administrators. The exam tests the ability to operate from the command line, install and configure Linux, set up an intranet or a LAN, and handle simple maintenance jobs such as operating running systems, assisting users, adding users, and performing backups and recovery.
Candidates must pass exams 101 and 102 to earn this credential. Details are available online.
Red Hat Certified System Administrator (RHCSA) — It's not surprising that Red Hat certifications are widely sought after. Red Hat is the leading Linux technology vendor, with significant market share. The RHCSA demonstrates fundamental skills in system administration specific to Red Hat Enterprise Linux systems.
The RHCSA exam has a practical component and tests hands-on expertise in file handling, documentation, command-line operation, configuration of storage volumes and file systems, managing running systems (including VMs), installing software, administering users, and managing security. Details are available online.
Oracle Linux 6 System Administrator (OCP) — This certification is designed for those who work or aim to work with Oracle Linux distributions. It validates advanced skills in system monitoring, security, and authentication.
To earn this credential, candidates must hold a valid Oracle Certified Associate, or Oracle Linux 5 and 6 System Administrator certification, and pass the Oracle Linux 6 Advanced System Administration 1Z0-105 exam with a passing score of 61 percent. Details are available online.
CompTIA Linux+ — The newly rebooted CompTIA Linux+ is designed for junior Linux system administrators. It demonstrates current foundational Linux skills and basic understanding of major Linux distributions, including installation and configuration of Linux systems, command-line operation, networking, and maintenance.
To earn the CompTIA Linux+, candidates need to pass just one exam. Details are available online.
Linux Foundation Certified System Administrator (LFCS) — The LFCS credential is designed for entry-level Linux system administrators. The performance-based exam tests the ability to perform routine administrative tasks and address real-world problems. Details are available online.
Other certifications include GIAC Certified UNIX Security Administrator (GCUX) for those who intend specializing in system security, and IBM Certified Database Administrator.
According to Payscale, the average annual salary for Linux system administrators is $70,194. Currently, career prospects appear bright for Linux administrators with solid programming ability, in-depth knowledge of network security, virtualization skills, and expertise in managing complex systems.