Tujuan Pembelajaran
Setelah menyelesaikan praktikum ini, mahasiswa mampu:
- Memahami konsep hak akses file dan direktori dalam sistem Linux
- Menggunakan perintah chmod, chown, dan chgrp untuk mengelola hak akses
- Menerapkan hak akses numerik (octal) dan simbolik
- Mengkonfigurasi hak akses untuk keamanan sistem yang tepat
Teori Pendukung
Konsep Dasar Hak Akses Linux
User/Owner (u)
Pemilik file/direktori
Group (g)
Anggota grup pemilik
Jenis Hak Akses
| Simbol |
Nilai |
File |
Direktori |
r (read) |
4 |
Membaca isi file |
Melihat daftar file |
w (write) |
2 |
Mengubah isi file |
Membuat/hapus file |
x (execute) |
1 |
Menjalankan file |
Masuk ke direktori |
Representasi Hak Akses
rwxr-xr--
rwx (user) | r-x (group) | r-- (others)
754
7 (user) | 5 (group) | 4 (others)
Konversi Numerik ke Simbolik
| Numerik |
Simbolik |
Kalkulasi |
Deskripsi |
7 |
rwx |
4+2+1 |
Read + Write + Execute |
6 |
rw- |
4+2+0 |
Read + Write |
5 |
r-x |
4+0+1 |
Read + Execute |
4 |
r-- |
4+0+0 |
Read only |
3 |
-wx |
0+2+1 |
Write + Execute |
2 |
-w- |
0+2+0 |
Write only |
1 |
--x |
0+0+1 |
Execute only |
0 |
--- |
0+0+0 |
No access |
Perintah Manajemen Hak Akses
1. ls -l - Melihat Hak Akses
ls -l filename
ls -la
-rwxr-xr-x 1 user group 2048 Dec 19 10:30 script.sh
drwxr-xr-x 2 user group 4096 Dec 19 10:30 directory
-rwxr-xr-x
1
user
group
2. chmod - Mengubah Hak Akses
Metode Simbolik
chmod [who][operator][permissions] file
chmod u+x script.sh
chmod go-w file.txt
chmod a+r file.txt
chmod u=rwx,g=rx,o=r file.txt
Metode Numerik
chmod [mode] file
chmod 755 script.sh
chmod 644 file.txt
chmod 700 secret.txt
chmod 750 directory
3. chown - Mengubah Kepemilikan
chown [owner][:group] file
chown user1 file.txt
chown :group1 file.txt
chown user1:group1 file.txt
chown -R user1:group1 directory
4. chgrp - Mengubah Group
chgrp [group] file
chgrp developers script.sh
chgrp -R www-data /var/www
5. umask - Default Permissions
umask
umask 022
Langkah-langkah Praktikum
A. Persiapan Environment
sudo -i
mkdir -p /praktikum3/{data,backup,scripts}
touch /praktikum3/data/file1.txt /praktikum3/data/file2.log
touch /praktikum3/scripts/script.sh
echo "Ini adalah file1.txt" > /praktikum3/data/file1.txt
echo "Ini adalah script.sh" > /praktikum3/scripts/script.sh
echo "#!/bin/bash" >> /praktikum3/scripts/script.sh
echo "echo 'Hello World'" >> /praktikum3/scripts/script.sh
B. Analisis Hak Akses Default
ls -l /praktikum3/
ls -l /praktikum3/data/
ls -l /praktikum3/scripts/
drwxr-xr-x 2 root root 4096 Mar 15 10:00 data
-rw-r--r-- 1 root root 20 Mar 15 10:00 file1.txt
C. Menggunakan Perintah chmod
Metode Simbolik
chmod a-w /praktikum3/data/file1.txt
ls -l /praktikum3/data/file1.txt
chmod u+x /praktikum3/scripts/script.sh
ls -l /praktikum3/scripts/script.sh
chmod go-w /praktikum3/data/file2.log
ls -l /praktikum3/data/file2.log
Metode Numerik
chmod 755 /praktikum3/scripts/script.sh
ls -l /praktikum3/scripts/script.sh
chmod 644 /praktikum3/data/file1.txt
ls -l /praktikum3/data/file1.txt
chmod 700 /praktikum3/backup/
ls -ld /praktikum3/backup/
D. Menggunakan chown dan chgrp
useradd -m user1
useradd -m user2
groupadd kelompok1
usermod -aG kelompok1 user1
usermod -aG kelompok1 user2
chown user1 /praktikum3/data/file1.txt
ls -l /praktikum3/data/file1.txt
chgrp kelompok1 /praktikum3/data/file2.log
ls -l /praktikum3/data/file2.log
chown user1:kelompok1 /praktikum3/scripts/script.sh
ls -l /praktikum3/scripts/script.sh
E. Testing Hak Akses
su - user1
cat /praktikum3/data/file1.txt
echo "Test oleh user1" >> /praktikum3/data/file1.txt
/praktikum3/scripts/script.sh
ls /praktikum3/backup/
exit
Special Permissions
1. SUID (Set User ID)
Perhatian: SUID bisa berbahaya jika tidak dikonfigurasi dengan benar!
chmod u+s file
chmod 4755 file
ls -l /usr/bin/passwd
2. SGID (Set Group ID)
chmod g+s directory
chmod 2755 directory
3. Sticky Bit
chmod +t directory
chmod 1755 directory
ls -ld /tmp
Special Permissions Numeric Values
| Permission |
Simbol |
Nilai |
Contoh |
| SUID |
s atau S |
4 |
4755 |
| SGID |
s atau S |
2 |
2755 |
| Sticky Bit |
t atau T |
1 |
1755 |
Implementasi Keamanan File Sensitif
echo "username: secretpassword" > /praktikum3/secret.txt
chmod 600 /praktikum3/secret.txt
chown root:root /praktikum3/secret.txt
ls -l /praktikum3/secret.txt
Best Practices untuk Keamanan File
- Config files: 644 (rw-r--r--)
- Scripts: 755 (rwxr-xr-x)
- Sensitive data: 600 (rw-------)
- Web root: 755 untuk direktori, 644 untuk file
- Home directories: 700 (rwx------)
- 777 - Semua orang bisa everything
- 666 - Semua orang bisa baca/tulis
- SUID pada script - Security risk
- World-writable system files
- Execute permission pada data files
Tugas dan Evaluasi
- Apa perbedaan antara hak akses 755 dan 750?
- Mengapa file script perlu memiliki hak akses execute?
- Apa yang terjadi jika direktori tidak memiliki hak akses x (execute)?
- Bagaimana cara memberikan hak akses rw-r----- dalam format numerik?
- Scenario: Anda memiliki file konfigurasi
/etc/aplikasi.conf yang hanya boleh dibaca oleh root dan anggota grup admin. Tulis perintah lengkapnya!
Quick Reference
Common Permission Patterns
| Numerik |
Simbolik |
Keterangan |
777 |
rwxrwxrwx |
Full access for everyone (dangerous) |
755 |
rwxr-xr-x |
Owner full, others read/execute |
750 |
rwxr-x--- |
Owner full, group read/execute, others none |
644 |
rw-r--r-- |
Owner read/write, others read only |
640 |
rw-r----- |
Owner read/write, group read only |
600 |
rw------- |
Owner read/write only |
400 |
r-------- |
Owner read only |
Important Directories and Their Permissions
/
/etc
/home
/tmp
/var
/root