Paket 1 · Fondasi DevOpsModul C — Linux Fundamentals

Linux Users, Groups, dan Permissions

Mengelola user dan group, memahami permission rwx, chmod, chown, umask, sudo, dan ACL untuk keamanan server.

Linux adalah sistem multi-user. Setiap proses berjalan sebagai user tertentu, dan setiap file memiliki pemilik serta izin akses. Memahami hal ini adalah dasar keamanan server.

User dan group

FileIsi
/etc/passwdInfo user: UID, GID, home, shell
/etc/shadowHash password (hanya root)
/etc/groupDaftar group dan anggotanya
/etc/sudoersAturan sudo

Lihat identitas Anda:

whoami
id
groups
getent passwd deploy

Membuat dan mengelola user

useradd -m -s /bin/bash deploy
passwd deploy
usermod -aG sudo deploy
usermod -s /bin/bash deploy
userdel -r deploy
OpsiArti
-mBuat home directory
-sShell login
-aGTambah ke group tanpa menghapus group lain
-rHapus home saat user dihapus

Di Debian/Ubuntu, adduser lebih interaktif:

adduser deploy
adduser deploy sudo
deluser --remove-home deploy

Group

groupadd developers
usermod -aG developers deploy
getent group developers
gpasswd -d deploy developers

Group sebagai alat kolaborasi

Daripada memberi permission ke banyak user satu per satu, masukkan mereka ke group yang sama lalu beri akses ke group tersebut. Lebih rapi dan mudah diaudit.

Permission dasar

Setiap file memiliki tiga kelompok izin: owner, group, dan others.

ls -l /srv/app

Contoh output:

-rwxr-x--- 1 deploy developers 4096 Oct 20 10:00 start.sh
PosisiArti
-Tipe file (- file, d direktori, l symlink)
rwxOwner: read, write, execute
r-xGroup: read, execute
---Others: tidak punya akses

Nilai numerik:

SimbolNilai
r4
w2
x1

Jadi rwxr-x--- = 750.

chmod

chmod 750 start.sh
chmod u+x start.sh
chmod g-w start.sh
chmod o-rwx start.sh
chmod -R 755 /srv/app/public
ModeUmum dipakai untuk
644File biasa (owner rw, lainnya r)
600File rahasia (hanya owner)
755Direktori dan script executable
700Direktori privat

chown dan chgrp

chown deploy:developers /srv/app
chown -R deploy:developers /srv/app
chgrp developers /srv/app/logs

umask

umask menentukan permission default file baru.

umask
umask 022

Dengan umask 022, file baru menjadi 644 dan direktori 755.

sudo

sudo menjalankan perintah sebagai root tanpa login sebagai root.

sudo apt update
sudo -u deploy whoami
sudo -l

Edit konfigurasi dengan aman:

visudo

Contoh aturan:

deploy ALL=(ALL:ALL) NOPASSWD: /usr/bin/systemctl restart nginx

Beri izin spesifik, bukan ALL tanpa batas, untuk mengurangi risiko.

Jangan bekerja sebagai root terus-menerus

Gunakan user biasa + sudo. Login root langsung memudahkan kesalahan fatal dan mengurangi jejak audit.

ACL untuk izin lebih detail

ACL berguna saat satu file perlu diakses beberapa user/group dengan izin berbeda.

apt install -y acl
setfacl -m u:deploy:rw /srv/app/config.yml
getfacl /srv/app/config.yml
setfacl -x u:deploy /srv/app/config.yml

Praktik: menyiapkan akses aplikasi

# 1. Buat user dan group aplikasi
groupadd -f appteam
useradd -m -s /bin/bash deploy
usermod -aG appteam deploy

# 2. Siapkan direktori
mkdir -p /srv/app/{logs,config}
chown -R root:appteam /srv/app
chmod -R 750 /srv/app

# 3. File konfigurasi hanya untuk group
echo "PORT=3000" > /srv/app/config/app.env
chown root:appteam /srv/app/config/app.env
chmod 640 /srv/app/config/app.env

# 4. Verifikasi
ls -l /srv/app/config
sudo -u deploy cat /srv/app/config/app.env

Ringkasan

  • User dan group mengatur identitas serta akses.
  • Permission rwx berlaku untuk owner, group, dan others.
  • chmod, chown, umask, sudo, dan ACL adalah alat utama.
  • Prinsip least privilege: beri akses seminimal mungkin.

Selanjutnya

On this page