Linux system administrators are people who are responsible for managing IT infrastructures that are powered by Linux. It is one of the most sought after positions by modern enterprises. Competetive sysadmins are always in high demand and will get rewarding workplace benefits. But, what does it take to become a successful sysadmin? If you’re a seasoned Linux user who wants to try his hand at system administration, this guide is for you. Today, we will discuss some of the key aspects of becoming a Linux admin. You will find out the things a competitive system admin needs to know from this guide.
Things to Master for Acing a Sysadmin Position
Experienced system admins can grab one of the highest paying computer science jobs very easily. So, if you want to get hired as a sysadmin, continue reading to find out the requirements of a modern Linux system administrator. Don’t worry if you don’t know all of these. Think of them as a reference and start practicing today.
1. Setting Up The Environment
As a Linux system admin, you are obliged to set up custom environments as per corporate requirements. You should be comfortable at this task since it’s one of the first things most Linux users do. Although the environment requirements vary from job to job, you will need to adjust to the task by any means. However, you will often end up with an already up and running system. Make sure you tune the system to meet your preferences without interrupting any required services.
Some essential aspects of environment setup include partitioning, encryption, BIOS setup, and storage configurations. Additionally, most companies will follow a strict set of guidelines for their corporate servers. These include things like network configurations, security firewalls, IDS configurations, and so on. The below sections will discuss many of these in detail.
2. Managing Users and Groups
User management is another major responsibility of a Linux sysadmin. IT systems usually have a number of users, each with different roles. Thus, you need to ensure that users can use the system as intended. Make sure that users don’t have too much or too little access to the system. Access should be assigned based on the user’s role, and a solid user policy is mandatory in this matter.
As a system admin, you will be in charge of creating new users, setting groups, file permissions, and other user-space attributes. You also need to ensure that users use strong and secure passwords. Make sure to set up password expiration as well as the PAM module and locks on failed logins. You should also incorporate effective access control strategies by configuring the appropriate setuid, setgid, and sticky bits.
3. Installing and Configuring Packages
Linux bundles its applications as packages. By default, most systems come with a select set of rudimentary tools. However, it’s the responsibility of the system admin to install all other required packages as well as configuring and managing them. Package management takes a significant amount of effort, and thus professional sysadmins should try to automate the trivial processes for increasing their productivity.
You should have a well understanding of Linux Cron jobs alongside standard package managers like apt, dpkg, yum, and packman. Additionally, Linux system administrators will often need to install or update packages using repositories. So make sure you know how that works. If you’re an absolute beginner with little knowledge of package management, head over to this guide for learning how to install software in Linux, note that configuring packages often require more work than installation.
4. Linux Shells
The Linux shell provides a command-based interface to the underlying system. It is one of the most important things to know if you want to pursue a career as a sysadmin. Linux supports a large number of shells, both legacy and contemporary ones. You should at least be proficient at one of them and have an understanding of some other. Some commonly used shells for today’s admins include the Bash shell, Zsh, Tcsh, and Fish.
Shells interpret commands as well as shell scripts. As a system admin, you will be in charge of writing different types of scripts. You should be able to write shell scripts for system maintenance tasks such as taking backups, monitoring logs, automation, and so on. We have prepared an earlier guide on Linux shell scripts for helping beginners to get better at it.
5. Linux Filesystem
The filesystem sits at the core of Linux systems. It is essential for admins to have an in-depth understanding of the filesystem and its operations. Since Unix systems emphasize largely on the filesystem, most system operations are designed to reflect this. You need to learn about the filesystem hierarchy, different filesystem types, permissions, and many more. You can’t become a successful system administrator without mastering the Linux filesystem.
Luckily, there are a lot of good resources out there that teach the fundamentals of the Unix filesystem. If you want to learn the different filesystem attributes and standard commands, check out our earlier guide on the Linux filesystem. We also suggest users read the “The UNIX Programming Environment” by Kernighan & Pike. The authors were directly involved in the UNIX project and provide design ideas and historical insights on the filesystem in their book.
6. Configuring and Managing Networks
Linux system administrators are required to have excellent networking abilities. In fact, many system admins spend most of their working hours on network configurations and management. You need to have a detailed understanding of fundamental networking concepts such as TCP/IP protocols, routing, switching, bridging, DNS, and so on. You will often be responsible for setting up new networks as well as managing existing ones.
Admins should also be proficient in using standard Linux network tools like ifconfig, ip, netstat, etc. What tools you use will usually depend on the exact task. So, sysadmins should be flexible and ready to learn whatever tools are required. Moreover, having good networking abilities is not enough. You need to implement the best security practices and keep your IT infrastructure safe from intruders all the time.
7. Managing Data Storage
As a system admin, you will be responsible for managing data storage for your corporation’s IT infrastructure. Data storage is a broad topic and is extremely crucial. You don’t want to be the one to mess up sensitive information. That’s why you should be able to set up appropriate storage solutions and manage them effectively. Learn the basics of partitioning and disk encryption. You should also be abler to set up reliable LVM schemes.
You need back up corporate data conveniently and store them for future usage. Learn the various RAID configuration models and apply them based on enterprise requirements. Many companies will also require you to set up network-based storage solutions like NAS and SAN servers. You can find some of the best NAS and SAN solutions for Linux from our earlier guide. Moreover, admins should also be able to implement robust disk monitoring systems.
8. Virtualization Technologies
Every major corporation these days use virtualization of one form or another. So, a Linux system administrator should be fairly comfortable working with this technology. In simple terms, virtualization refers to the ability to run multiple operating system instances on a single physical machine. It not only reduces hardware costs but also makes scaling systems easier.
There are primarily two ways to implement virtualization. The first method utilizes hypervisors-based Virtual Machines. These act as standalone systems but uses a considerable amount of CPU resources. The second method uses containerized technologies like LXC and Docker, to provide OS-level abstractions. This allows companies to run hundreds, even thousands of different services on a single machine. System admins are expected to have a working knowledge of both technologies.
9. Managing Backups
Data is the driving factor to success, and modern enterprises deal with a large amount of varying data. As a sysadmin, you will be responsible for securing this data. The first step for securing data is taking backups. You need to be familiar with standard backup utilities for Linux as well as commonly used backup policies. Many companies use some sort of paid backup solution for bootstrapping the backing process.
When it comes to creating and managing enterprise backups, you need to consider things like the backup medium, software, and policies. You need to devise a plan that keeps the hardware costs low but still provides optimal backing opportunities. If you’re relatively new in this field, make yourself familiar with simple backup methods. Learn using the tar utility, multi-level backups, compressed backups, and automation policies.
10. Disaster Recovery
If you’re working in a small to medium-sized office, chances are you’ll be responsible for additional workload alongside system administration. Many growing companies do not employ dedicated disaster recovery professionals and rely on the sysadmin to provide support in case of service disruption. So, you should have a concise idea of various disaster recovery models that are used in the IT industry.
For starters, you should be able to ensure the integrity of data and services across the organization. This requires planning ahead and implementing IT assessment policies that are feasible, both financially and technically. Admins should be capable of identifying potential disruptions very fast and be ready to get the services running within minutes. You can always perform and analyze disaster simulations to learn how to restore services as fast as possible.
11. Security Management
Security is one of the most crucial aspects of any IT job. Linux system administrators need to ensure the security of their enterprise infrastructure by any means. There are many things related to security in the IT world. From user authentication to web servers, vulnerable services to malicious attackers, there’s a lot to deal with. The first rule of managing corporate security is to implement proven Linux hardening methods.
Sysadmins should be able to identify and patch up broken services before they lead to escalation. Although the latest updates of many packages offer newer features, they’re often unstable. So you should stick with stable versions instead. Network security is another major responsibility of a sysadmin. Try to implement rock-solid IP security by utilizing the Linux IPtables as well as IDS/IPS tools. Check our guide on some of the best open-source security tools for Linux.
12. Hardware Management
Many corporations do not invest in a full-time computer technician and solely rely on the sysadmin for hardware management. This is especially true for professionals working in small, growing businesses. If you ever find yourself in this place, you should be prepared to tackle solve the issues smartly. Luckily, most sysadmins are more than capable of identifying hardware problems as soon as they occur.
Moreover, you don’t need to replace any faulty hardware or fix them by yourself. Simply notify the administration about the faulty components and suggest some viable alternatives. Overall, in-depth knowledge of your systems’ hardware resources is the key to such problems.
13. Memory Management
Although today’s systems do not have the resource limitations of legacy machines, admins need to get the most out of their systems. Memory management is an essential task for every Linux system administrator. You should have a clear idea of various memory management features of the kernel. This includes a working knowledge of virtual memory, paging, process address space, memory mapping, NUMA policies, and so on.
You should be able to create and allocate swap spaces as required. Sometimes you will be even sharing the swap across different operating systems. So, learn more about swap as well as the buffer cache and virtual memory. Memory management becomes much more crucial when you are working with resource-constrained platforms. Thus, you should be ready to handle any memory-related issues in your IT environment.
Automation has become a major part of modern IT jobs. Sysadmins are also embracing this to level up their game. Efficient automation makes working hours more productive and takes away repetitive tasks. Additionally, recent advances in DevOps have pushed sysadmins to take automation seriously than ever. You should be familiar with Linux Cron jobs as well as shell scripting by now. You can automate many aspects of your works using these simple tools.
To be able to automate your tasks better, you must have a keen eye for locating patterns. Try breaking down tasks into categories and devise a solution to tackle them individually. Functional automation can be easily refactored and offer future customization abilities. One proven automation model is to lay out the tasks at hand in terms of a trigger, action, and schedule. We also suggest you learn professional automation tools like ansible.
As a Linux system administrator, you will spend considerable time solving seemingly unnecessary problems. This is troubleshooting, an integral part of system administration no matter what your Linux distribution of choice is. People get better at troubleshooting with experience. This is why companies pay top money for senior sysadmins. They usually know why certain problems are happening and the quickest route to fix the underlying issues.
Troubleshooting is one of those areas where many starting users feel uncomfortable. The only way to increase your problem-solving capabilities is to spend more time behind your craft. The more you use a system, the more problems you face. Luckily, each time we solve a new issue, we can use it as a reference to similar problems in the future. This is why we suggest beginners complete practical Linux certifications or courses.
Monitoring the system, as well as the network, is a routine task for any professional system admin. If you want to succeed, you need to be careful about your credibility. Effective monitoring allows admins to keep ahead of potential screw ups’ and solve issues as soon as possible. IT professionals use several monitoring methods. You should automate repetitive tasks like monitoring logs and emails. Things like networking require more care since even the simplest of issues here can disrupt hours of business services.
Other things to monitor include user activities, filesystem, memory, CPU usage, etc. Luckily, a large number of robust monitoring tools are available to help you with this. Tools like top/htop make resource monitoring easier while you can use the Linux df command for monitoring the filesystem.
Documentation is a big part of a sysadmin’s work. It plays a pivotal role in determining your success as a Linux system administrator. However, many people find it hard to document their role and changes in infrastructure, especially starters. There are different types of documentation, such as public-facing documentation and internal or organizational documentations. We will stick our discussion to the latter.
Sysadmins should document their network configurations as well as technical details clearly. Corporations demand this so that future recruits can work on existing systems without extra hassle. Additionally, in-depth documentations allow admins to solve upcoming disruptions. Documentation methods vary from person to person. I like to categorize my staff into sections. Some common parts of my documentation include network information, resources, third-party tools, commands, and support information.
Effective communication is essential for succeeding in any profession. However, IT professionals often find it hard to engage with co-workers, especially with non-technical persons. Many sysadmins will tell you that communicating with the HR or business people is much more difficult than the actual technical work. This can be frustrating and may disrupt your job satisfaction. That’s why you need to increase your communication efforts.
The key to effective communication is knowing your audience. People with no technical background will hardly understand why something is broken and why you are insisting on a specific model. You need to talk with them using the language they understand. It can be tough if you’re not good with people. However, like almost anything, your communication skill only gets better as you try.
Like any other computer science jobs, sysadmin positions require some specific educational qualification. Most companies will likely ask for a bachelor’s degree in CS or a related field. This demonstrates the candidates’ ability to perform systems programming as well as networking, database management, and so on. Some corporations may even ask for a master’s degree, especially for high paying positions.
However, don’t feel down if you’re a self-taught sysadmin or have no institutional degree. IT companies usually prefer people with skills rather than degrees. I know a lot of professional admins who used have come to the Linux world from entirely unrelated fields. No matter what your study background is, if you can meet the technical requirements for a position, you are highly likely to get the job.
Certifications can play a pivotal role in the career of a Linux system administrator. It is especially crucial for starting admins. If you have no prior job experience, you need to prove your credibility to potential employers. This is where certifications come in handy. A widely accepted Linux certification demonstrates your ability to tackle everyday IT problems. Moreover, many senior sysadmin positions explicitly demand certain certifications.
Some of the best certifications for beginners include the various Red Hat Certifications as well as CompTIA and LPIC ones. We suggest the RHCSA (Red Hat Certified System Administrator) or RHCE (Red Hat Certified Engineer) for people looking for their first sysadmin job. Senior admins can choose from a number of specialized courses like the Microsoft Certified Solutions Expert (MCSE) or Offensive Security Certified Professional (OSCP).
Linux system administrator jobs have changed significantly in the last decade. Modern sysadmins need to possess not only technical skills but also interpersonal capabilities to succeed in this demanding industry. Moreover, with the emergence of new technologies as well as trends, they must adapt to the change. Luckily, you can go a long way in this field if you have a solid understanding of the core skills. Our editors have prepared this guide outlining the 20 things that will help you land a rewarding sysadmin job. You need to keep putting your effort, and you will be there in no time.