Mengelola server Linux sebagai sysadmin: package management, service dengan systemd, user & group, permission, dan membaca log, lalu mempraktikkannya langsung di server Linux lab.

Setelah di episode 2 kita memetakan arsitektur layanan IT, kini saatnya menyentuh area paling inti peran sysadmin: administrasi Linux. Sebagian besar server dunia berjalan di Linux — dari aplikasi web, database, hingga container host. Kalian tidak bisa menjadi sysadmin yang efektif tanpa nyaman mengelola Linux.
Episode 3 ini adalah "paket dasar admin": cara mengelola paket perangkat lunak, mengelola service dengan systemd, mengelola user/group dan permission, serta membaca log. Kelima skill ini akan kalian pakai di hampir setiap episode berikutnya.
Di Linux, perangkat lunak dikelola lewat package manager — bukan mengunduh file acak. Setiap distro punya ekosistem sendiri:
| Family | Package Manager | Contoh Perintah |
|---|---|---|
| Debian/Ubuntu | apt | apt install nginx |
| RHEL/Rocky/Alma | dnf | dnf install nginx |
| Arch | pacman | pacman -S nginx |
Alur yang benar saat menginstal paket — perhatikan urutan update sebelum install:
sudo apt update
sudo apt install -y nginx
sudo apt remove nginxapt update menyegarkan daftar paket yang tersedia; tanpa itu kalian menginstal daftar lama (berisiko versi usang). Untuk mencari paket: apt search nginx. Untuk melihat file apa saja yang dimiliki paket: dpkg -L nginx.
systemd adalah init system modern yang mengelola service, target, dan journal log. Setiap service didefinisikan oleh unit file. Alur hidup service: start → active, bisa di-stop, restart, dan diatur enable agar menyala saat boot.
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
sudo systemctl restart nginx
sudo systemctl stop nginxsystemctl status adalah gerbang pertama troubleshooting: ia menampilkan apakah service aktif, PID, dan baris log terakhir. Biasakan selalu membacanya sebelum panik.
systemctl status nginx --no-pager
systemctl is-enabled nginx
systemctl list-units --type=service --state=failedPerintah terakhir sangat berguna: list-units --state=failed menemukan service yang mati diam-diam — kebiasaan cek cepat setiap pagi.
Untuk otomasi (episode 12) kalian akan menulis unit sendiri. Berikut contohnya:
[Unit]
Description=My Custom Application
After=network.target
[Service]
User=myapp
ExecStart=/usr/local/bin/my-app --config /etc/my-app.conf
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.targetSetelah menulis unit: sudo systemctl daemon-reload lalu sudo systemctl enable --now my-app.
Note
Restart=on-failure plus RestartSec=5 adalah "jaring pengaman" standar: jika aplikasi crash, systemd menyalakannya kembali dalam 5 detik. Ini penyelamat dalam operasional malam hari — tetapi jangan jadikan pengganti debugging akar masalah.
Linux memisahkan pengguna secara tegas. Hak istimewa penuh dipegang root; aktivitas admin sebaiknya lewat sudo agar tercatat dan tidak sembarangan.
sudo useradd -m -s /bin/bash budi
sudo passwd budi
sudo usermod -aG sudo budi
sudo groupadd devs
sudo userdel -r budiuseradd -m -s /bin/bash budi — buat user dengan home directory dan shell.usermod -aG sudo budi — tambah ke group sudo (hak admin).userdel -r budi — hapus user beserta home-nya.Setiap file punya pemilik, group, dan mode rwx untuk tiga kelas: user (u), group (g), others (o).
ls -l /etc/nginx/nginx.conf
chmod 644 /etc/nginx/nginx.conf
chown root:root /etc/nginx/nginx.conf644 berarti pemilik bisa baca-tulis (6), group dan lainnya hanya baca (4). Untuk direktori yang ingin dibagi antar user, kombinasikan group dan permission grup:
sudo groupadd shared
sudo usermod -aG shared budi
sudo mkdir /srv/shared
sudo chown root:shared /srv/shared
sudo chmod 2770 /srv/sharedBit 2 (setgid) membuat file baru di dalam direktori mewarisi group direktori, bukan group pembuatnya — trik klasik direktori berbagi.
Linux mencatat hampir semuanya. Dua sumber log utama: journald (via journalctl) dan file di /var/log.
journalctl -u nginx --since "1 hour ago" -p warning
journalctl -xe
tail -f /var/log/syslogjournalctl -u nginx — log khusus service nginx.journalctl -xe — error terakhir + penjelasan, pintu masuk troubleshooting cepat.tail -f /var/log/syslog — ikuti log secara real-time (mode live).Tip
Kebiasaan sysadmin senior: saat ada masalah, jangan langsung bertanya ke orang lain — baca dulu journalctl -xe dan systemctl status dari service yang bermasalah. 80% jawaban sudah ada di sana.
Mari satukan semuanya di server Linux kalian:
sudo apt update && sudo apt install -y nginx
sudo systemctl enable --now nginx
sudo useradd -m -s /bin/bash admin-lab
sudo usermod -aG sudo admin-lab
curl -sS -o /dev/null -w "%{http_code}\n" http://localhost
journalctl -u nginx --since "10 minutes ago"Jika curl mencetak 200, server web hidup; jika systemctl status nginx menampilkan active (running), service sehat; jika ada error, journalctl akan menunjukkan penyebabnya. Inilah siklus admin sejati: install → konfigurasi → verifikasi → baca log saat ada yang salah.
Inti yang harus dibawa pulang dari episode 3:
update sebelum install.systemctl start/enable/status/restart + kebiasaan cek --state=failed.useradd, usermod -aG, chmod, chown, dan trik setgid untuk direktori bersama.journalctl -u, journalctl -xe, tail -f.Di episode 4 selanjutnya kita pindah ke sisi lain yang tak kalah penting: Windows Server Administration — Active Directory, Group Policy, PowerShell, dan Windows services, plus praktik setup domain controller di server Windows lab kalian. Pastikan Windows Server evaluasi sudah berjalan, karena kita akan menyetelnya sebagai domain controller!