ABDURROZAK.MY.ID // DEBIAN LINUX SERVER FUNDAMENTAL
USER, GROUP &PERMISSION MANAGEMENT
Volume 05 dari seri Debian Linux Server Fundamental. Panduan komprehensif manajemen user, group, dan permission di Linux. Setiap command dijelaskan detail dengan syntax, parameter, contoh penggunaan, dan output. Dari konsep dasar user/group hingga sudo dan privilege escalation.
VOLUME05 / 17
SUB-BAB8
BACA90 MENIT
USER100%
ABDUR ROZAK, S.Kom.
Web Developer & System Administrator - abdurrozak.my.id
VOLUME 05 / 17
USER, GROUP & PERMISSION MANAGEMENT
Panduan lengkap user, group, dan permission management di Debian Linux. 8 sub-bab mencakup konsep user & group, membuat dan menghapus user, password management, permission rwx, chmod, chown, chgrp, hingga sudo dan privilege escalation. Setiap command disertai penjelasan detail dan contoh praktis.
SUB-BAB8LEVELUser & PermissionWAKTU90 MENIT
01
SUB-BAB 01 KONSEP
KONSEP USER & GROUP
Apa Itu User?
User (pengguna) adalah akun yang digunakan untuk mengakses sistem Linux. Setiap user memiliki identitas unik (username), home directory, shell, dan permission tertentu. Linux adalah sistem multi-user, artinya banyak user bisa login dan menggunakan sistem secara bersamaan.
Jenis User di Linux
JENIS USER
UID
KARAKTERISTIK
root
0
Superuser, akses penuh ke sistem
System User
1-999
User untuk service/daemon (sshd, www-data, dll)
Regular User
1000+
User biasa untuk manusia
Konsep Group
Group adalah kumpulan user yang dikelompokkan untuk memudahkan manajemen permission. Setiap user memiliki:
PRIMARY GROUP
Group utama user (biasanya sama dengan username)
SUPPLEMENTARY GROUPS
Group tambahan yang user bisa jadi member
File Konfigurasi User & Group
FILE
FUNGSI
ISI
/etc/passwd
Informasi user
username, UID, GID, home, shell
/etc/shadow
Password user (encrypted)
Hash password, expiry
/etc/group
Informasi group
group name, GID, members
/etc/gshadow
Password group
Group password
Melihat Informasi User
bash
# Lihat isi /etc/passwdadmin@web-server:~$ cat /etc/passwdroot:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinadmin:x:1000:1000:Admin User:/home/admin:/bin/bash# Format: username:password:UID:GID:comment:home:shell# Lihat user yang sedang loginadmin@web-server:~$ whoadmin tty1 2026-09-07 10:30# Lihat siapa sayaadmin@web-server:~$ whoamiadmin# Lihat ID user dan groupadmin@web-server:~$ iduid=1000(admin) gid=1000(admin) groups=1000(admin),27(sudo)# Lihat group useradmin@web-server:~$ groupsadmin sudo# Lihat group untuk user tertentuadmin@web-server:~$ groups usernameusername : username developers
# Buat user sederhanaadmin@web-server:~$ sudo useradd -m -s /bin/bash newuser# Buat user dengan full nameadmin@web-server:~$ sudo useradd -m -s /bin/bash -c "John Doe" john# Buat user dengan group dan supplementary groupsadmin@web-server:~$ sudo useradd -m -s /bin/bash -g developers -G sudo,sudo docker dev1# Buat user dengan expiry dateadmin@web-server:~$ sudo useradd -m -s /bin/bash -e 2026-12-31 tempuser# Verifikasi user dibuatadmin@web-server:~$ id newuseruid=1001(newuser) gid=1001(newuser) groups=1001(newuser)admin@web-server:~$ ls -la /home/newusertotal 24drwxr-xr-x 2 newuser newuser 4096 Sep 7 10:30 .drwxr-xr-x 4 root root 4096 Sep 7 10:30 ..-rw-r--r-- 1 newuser newuser 220 Sep 7 10:30 .bash_logout-rw-r--r-- 1 newuser newuser 3771 Sep 7 10:30 .bashrc-rw-r--r-- 1 newuser newuser 807 Sep 7 10:30 .profile
TIPS: Option -m penting untuk membuat home directory dengan file konfigurasi default (.bashrc, .profile, dll). Tanpa -m, user tidak punya home directory.
Modifikasi User
usermod
Modifikasi user yang sudah ada
sudo usermod [options] username
bash
# Tambah user ke group sudoadmin@web-server:~$ sudo usermod -aG sudo username↳ -a = append (tambah tanpa hapus dari group lain)↳ -G = supplementary group# Tambah user ke multiple groupsadmin@web-server:~$ sudo usermod -aG sudo,docker,developers username# Ganti shell useradmin@web-server:~$ sudo usermod -s /bin/zsh username# Ganti home directoryadmin@web-server:~$ sudo usermod -d /new/home -m username↳ -m = move konten home lama ke home baru# Lock account (tidak bisa login)admin@web-server:~$ sudo usermod -L username# Unlock accountadmin@web-server:~$ sudo usermod -U username# Set expiry dateadmin@web-server:~$ sudo usermod -e 2026-12-31 username# Verifikasi perubahanadmin@web-server:~$ id usernameuid=1001(username) gid=1001(username) groups=1001(username),27(sudo),998(docker)admin@web-server:~$ grep username /etc/passwdusername:x:1001:1001:User Name:/home/username:/bin/zsh
PERINGATAN: Gunakan -aG (append) saat menambah ke supplementary group. Jika hanya pakai -G, user akan dihapus dari semua supplementary group lain!
Menghapus User
userdel
Hapus user
sudo userdel [options] username
bash
# Hapus user saja (home directory tetap ada)admin@web-server:~$ sudo userdel username# Hapus user + home directoryadmin@web-server:~$ sudo userdel -r username↳ -r = remove home directory dan mail spool# Hapus user + home directory (force)admin@web-server:~$ sudo userdel -rf username↳ -f = force, bahkan jika user sedang login# Verifikasi user dihapusadmin@web-server:~$ id usernameid: 'username': no such useradmin@web-server:~$ ls /home/usernamels: cannot access '/home/username': No such file or directory
PERINGATAN:userdel -r akan hapus home directory user beserta semua file di dalamnya. Pastikan backup data penting sebelum hapus user!
Best Practice User Management
DO
Gunakan username lowercase, buat user terpisah untuk service, gunakan sudo bukan login root langsung
Setiap file dan directory di Linux memiliki permission (hak akses) yang menentukan siapa yang bisa membaca, menulis, atau mengeksekusi. Permission dibagi menjadi 3 kategori:
KATEGORI
SIMBOL
ARTI
User (Owner)
u
Pemilik file/directory
Group
g
Group pemilik file/directory
Other
o
Semua orang lain
Jenis Permission
PERMISSION
SIMBOL
ANGKA
FILE
DIRECTORY
Read
r
4
Lihat isi file
List isi directory
Write
w
2
Modifikasi file
Tambah/hapus file di directory
Execute
x
1
Jalankan file sebagai program
Masuk ke directory (cd)
No Permission
-
0
Tidak ada akses
Tidak ada akses
Membaca Permission
bash
# Lihat permission fileadmin@web-server:~$ ls -l file.txt-rw-r--r-- 1 admin admin 1234 Sep 7 10:30 file.txt# Breakdown:- rwx rwx rwx^ ^^^ ^^^ ^^^| | | └─ other (semua orang lain)| | └─ group (group owner)| └─ user (owner)└─ file type (- = file, d = directory, l = symlink)# Contoh lain:admin@web-server:~$ ls -ld /homedrwxr-xr-x 4 root root 4096 Sep 7 10:30 /home# d = directory# rwx = owner (root) bisa read, write, execute# r-x = group (root) bisa read, execute (tidak write)# r-x = other bisa read, execute (tidak write)admin@web-server:~$ ls -l script.sh-rwxr-xr-x 1 admin admin 1234 Sep 7 10:30 script.sh# File executable (script)
Numeric Permission
Permission bisa direpresentasikan dalam bentuk angka (octal):
TIPS: Untuk directory, execute permission (x) berarti bisa masuk ke directory (cd). Tanpa execute permission, tidak bisa akses isi directory meskipun punya read permission.
KOMPETENSI SUB-BAB 04
Memahami konsep permission rwx
Mampu membaca permission dari ls -l
Memahami numeric permission (octal)
Mengetahui permission umum untuk file dan directory
05
SUB-BAB 05 CHMOD
CHMOD - MENGUBAH PERMISSION
chmod - Change Mode
chmod
Ubah permission file/directory
chmod [options] modefile
Metode 1: Numeric (Octal)
bash - numeric
# Set permission dengan angkaadmin@web-server:~$ chmod 755 script.sh↳ 7 = rwx (owner), 5 = r-x (group), 5 = r-x (other)admin@web-server:~$ chmod 644 file.txt↳ 6 = rw- (owner), 4 = r-- (group), 4 = r-- (other)admin@web-server:~$ chmod 600 secret.txt↳ Hanya owner bisa read/writeadmin@web-server:~$ chmod 700 private-dir/↳ Hanya owner bisa akses directory# Verifikasiadmin@web-server:~$ ls -l script.sh-rwxr-xr-x 1 admin admin 1234 Sep 7 10:30 script.sh
Metode 2: Symbolic
bash - symbolic
# Tambah permissionadmin@web-server:~$ chmod u+x script.sh↳ u = user (owner), +x = tambah executeadmin@web-server:~$ chmod g+w file.txt↳ g = group, +w = tambah writeadmin@web-server:~$ chmod o+r file.txt↳ o = other, +r = tambah read# Hapus permissionadmin@web-server:~$ chmod g-w file.txt↳ -w = hapus writeadmin@web-server:~$ chmod o-x script.sh↳ -x = hapus execute# Set permission (replace)admin@web-server:~$ chmod u=rwx,g=rx,o=r file.txt↳ Set sekaligus: owner=rwx, group=rx, other=r# Untuk semua (user, group, other)admin@web-server:~$ chmod a+x script.sh↳ a = all (u+g+o), +x = tambah execute untuk semua# Recursive (untuk directory dan isinya)admin@web-server:~$ chmod -R 755 directory/↳ -R = recursive, terapkan ke semua isi directory# Verifikasiadmin@web-server:~$ ls -l file.txt-rwxr-xr-- 1 admin admin 1234 Sep 7 10:30 file.txt
OPTION
FUNGSI
-R
Recursive (untuk directory)
-v
Verbose (tampilkan perubahan)
-c
Change (hanya tampilkan jika ada perubahan)
Tips chmod
GUNAKAN NUMERIC
Untuk set permission lengkap (755, 644, dll). Lebih cepat dan jelas.
GUNAKAN SYMBOLIC
Untuk modifikasi partial (tambah/hapus permission tertentu). Lebih fleksibel.
PERINGATAN: Hati-hati dengan chmod -R 777! Ini memberikan akses penuh ke semua orang dan sangat tidak aman. Gunakan permission yang sesuai kebutuhan.
KOMPETENSI SUB-BAB 05
Mampu gunakan chmod dengan numeric mode
Mampu gunakan chmod dengan symbolic mode
Mampu gunakan chmod recursive
Memahami kapan menggunakan numeric vs symbolic
06
SUB-BAB 06 CHOWN
CHOWN - MENGUBAH OWNER
chown - Change Owner
chown
Ubah owner dan/atau group file
sudo chown [options] owner[:group] file
bash
# Ubah owner sajaadmin@web-server:~$ sudo chown newuser file.txt# Ubah owner dan group sekaligusadmin@web-server:~$ sudo chown newuser:newgroup file.txt# Ubah group saja (owner tetap)admin@web-server:~$ sudo chown :newgroup file.txt↳ Atau gunakan: sudo chgrp newgroup file.txt# Recursive (untuk directory dan isinya)admin@web-server:~$ sudo chown -R newuser:newgroup directory/↳ -R = recursive, terapkan ke semua isi directory# Recursive dengan reference (gunakan owner/group dari file referensi)admin@web-server:~$ sudo chown -R --reference=reference.txt directory/# Verifikasiadmin@web-server:~$ ls -l file.txt-rw-r--r-- 1 newuser newgroup 1234 Sep 7 10:30 file.txt# Ubah owner untuk semua file di directoryadmin@web-server:~$ sudo chown -R www-data:www-data /var/www/html/
TIPS: Hanya root yang bisa mengubah owner file. User biasa hanya bisa mengubah group file yang mereka miliki (ke group yang mereka jadi member).
KOMPETENSI SUB-BAB 06
Mampu ubah owner file/directory
Mampu ubah owner dan group sekaligus
Mampu gunakan chown recursive
Memahami kapan perlu sudo untuk chown
07
SUB-BAB 07 CHGRP
CHGRP - MENGUBAH GROUP
chgrp - Change Group
chgrp
Ubah group file
sudo chgrp [options] groupfile
bash
# Ubah group fileadmin@web-server:~$ sudo chgrp developers file.txt# Ubah group directoryadmin@web-server:~$ sudo chgrp developers project/# Recursiveadmin@web-server:~$ sudo chgrp -R developers project/# Verifikasiadmin@web-server:~$ ls -l file.txt-rw-r--r-- 1 admin developers 1234 Sep 7 10:30 file.txt# Atau gunakan chown untuk ubah groupadmin@web-server:~$ sudo chown :developers file.txt
OPTION
FUNGSI
-R
Recursive (untuk directory)
-v
Verbose (tampilkan perubahan)
-c
Change (hanya tampilkan jika ada perubahan)
chown vs chgrp
COMMAND
FUNGSI
CONTOH
chown
Ubah owner (dan/atau group)
chown user:group file
chgrp
Ubah group saja
chgrp group file
TIPS:chown :group file
sama dengan chgrp group file
. Keduanya bisa digunakan untuk mengubah group.
KOMPETENSI SUB-BAB 07
Mampu ubah group file/directory dengan chgrp
Mampu gunakan chgrp recursive
Memahami perbedaan chown dan chgrp
08
SUB-BAB 08 SUDO
SUDO & PRIVILEGE ESCALATION
Konsep sudo
sudo (Super User DO) memungkinkan user biasa menjalankan command dengan privilege root (atau user lain) tanpa harus login sebagai root. Ini lebih aman karena:
AUDIT TRAIL
Setiap command sudo dicatat (siapa, kapan, apa)
LIMITED ACCESS
Bisa batasi command apa yang boleh dijalankan
Menggunakan sudo
sudo
Jalankan command sebagai root
sudocommand
bash
# Jalankan command sebagai rootadmin@web-server:~$ sudo apt update[sudo] password for admin: ••••••••Hit:1 http://deb.debian.org/debian bookworm InRelease# Buka root shelladmin@web-server:~$ sudo -i[sudo] password for admin: ••••••••root@web-server:~#↳ Sekarang login sebagai root# Jalankan command sebagai user lainadmin@web-server:~$ sudo -u username command# Lihat command apa yang boleh dijalankanadmin@web-server:~$ sudo -lUser admin may run the following commands on web-server: (ALL : ALL) ALL# Keluar dari root shellroot@web-server:~#exitadmin@web-server:~$
OPTION
FUNGSI
-i
Login shell sebagai root
-u user
Jalankan sebagai user tertentu
-l
List command yang boleh dijalankan
-k
Kill timestamp (minta password lagi)
-v
Validate timestamp (perpanjang timeout)
Konfigurasi sudoers
/etc/sudoers
File konfigurasi sudo
bash
# Edit sudoers (SELALU gunakan visudo!)admin@web-server:~$ sudo visudo# Atau edit file di /etc/sudoers.d/admin@web-server:~$ sudo visudo -f /etc/sudoers.d/custom# Format:# user host=(runas) commands# Contoh:# admin ALL=(ALL:ALL) ALL# %sudo ALL=(ALL:ALL) ALL# developer ALL=(ALL) /usr/bin/systemctl, /usr/bin/journalctl# Penjelasan:# admin = user# ALL = dari host manapun# (ALL:ALL) = bisa run as user dan group manapun# ALL = semua command# Contoh lain:# %developers ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx# Group developers bisa restart nginx tanpa password
PERINGATAN: SELALU gunakan visudo untuk edit sudoers! visudo melakukan syntax check sebelum save. Edit manual bisa lock out semua user dari sudo!
Tambah User ke Group sudo
Tambah ke sudo
Beri akses sudo ke user
bash
# Tambah user ke group sudoadmin@web-server:~$ sudo usermod -aG sudo username# Verifikasiadmin@web-server:~$ groups usernameusername : username sudo# User perlu logout dan login lagi agar perubahan berlaku# Atau buat file di /etc/sudoers.d/admin@web-server:~$ sudo visudo -f /etc/sudoers.d/username# Isi file:username ALL=(ALL:ALL) ALL
Best Practice sudo
DO
Gunakan sudo bukan login root, batasi command yang boleh dijalankan, gunakan visudo
DON'T
Jangan beri ALL=(ALL) NOPASSWD: ALL ke user biasa, jangan edit sudoers manual
TIPS: Untuk keamanan maksimal, buat user terpisah untuk tugas admin. Jangan gunakan user biasa untuk semua hal dengan sudo.
KOMPETENSI SUB-BAB 08
Memahami konsep sudo dan privilege escalation
Mampu gunakan sudo untuk jalankan command sebagai root
Mampu konfigurasi sudoers dengan visudo
Mampu tambah user ke group sudo
Memahami best practice sudo
VOLUME 05 SELESAI
SELAMAT!
Kamu telah menyelesaikan Volume 05 - User, Group & Permission Management. Dari konsep user & group, membuat dan menghapus user, password management, permission rwx, chmod, chown, chgrp, hingga sudo dan privilege escalation. Kamu sekarang menguasai user dan permission management di Linux. Di Volume 06, kita akan dalami Package Management dengan apt. Sampai jumpa!