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
| File | Isi |
|---|---|
/etc/passwd | Info user: UID, GID, home, shell |
/etc/shadow | Hash password (hanya root) |
/etc/group | Daftar group dan anggotanya |
/etc/sudoers | Aturan sudo |
Lihat identitas Anda:
whoami
id
groups
getent passwd deployMembuat dan mengelola user
useradd -m -s /bin/bash deploy
passwd deploy
usermod -aG sudo deploy
usermod -s /bin/bash deploy
userdel -r deploy| Opsi | Arti |
|---|---|
-m | Buat home directory |
-s | Shell login |
-aG | Tambah ke group tanpa menghapus group lain |
-r | Hapus home saat user dihapus |
Di Debian/Ubuntu, adduser lebih interaktif:
adduser deploy
adduser deploy sudo
deluser --remove-home deployGroup
groupadd developers
usermod -aG developers deploy
getent group developers
gpasswd -d deploy developersGroup 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/appContoh output:
-rwxr-x--- 1 deploy developers 4096 Oct 20 10:00 start.sh| Posisi | Arti |
|---|---|
- | Tipe file (- file, d direktori, l symlink) |
rwx | Owner: read, write, execute |
r-x | Group: read, execute |
--- | Others: tidak punya akses |
Nilai numerik:
| Simbol | Nilai |
|---|---|
r | 4 |
w | 2 |
x | 1 |
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| Mode | Umum dipakai untuk |
|---|---|
644 | File biasa (owner rw, lainnya r) |
600 | File rahasia (hanya owner) |
755 | Direktori dan script executable |
700 | Direktori privat |
chown dan chgrp
chown deploy:developers /srv/app
chown -R deploy:developers /srv/app
chgrp developers /srv/app/logsumask
umask menentukan permission default file baru.
umask
umask 022Dengan 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 -lEdit konfigurasi dengan aman:
visudoContoh aturan:
deploy ALL=(ALL:ALL) NOPASSWD: /usr/bin/systemctl restart nginxBeri 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.ymlPraktik: 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.envRingkasan
- User dan group mengatur identitas serta akses.
- Permission
rwxberlaku untuk owner, group, dan others. chmod,chown,umask,sudo, dan ACL adalah alat utama.- Prinsip least privilege: beri akses seminimal mungkin.
Selanjutnya
Kelola perangkat lunak di Package Management dan Software Installation.
Linux Filesystem, Path, File, dan Directory
Memahami hierarki filesystem Linux, perbedaan path absolut dan relatif, serta operasi file dan direktori yang aman.
Package Management dan Software Installation
Mengelola paket di Debian/Ubuntu dan RHEL-family, memahami repository, serta menginstal aplikasi dengan aman dan terukur.