Ada 3 izin khusus yang tersedia untuk file dan direktori yang dapat dieksekusi. Ini adalah :
1. izin SUID
2. Izin SGID
3. Sedikit lengket
Identifikasi Pengguna Tetap (SUID)
Pernahkah Anda berpikir, bagaimana pengguna non-root dapat mengubah kata sandinya sendiri ketika dia tidak memiliki izin menulis ke file /etc/shadow. hmm… menarik bukan? Nah untuk memahami triknya periksa izin perintah /usr/bin/passwd :
# ls -lrt /usr/bin/passwd -r-sr-sr-x 1 root sys 31396 Jan 20 2014 /usr/bin/passwd
– Jika Anda memeriksa dengan cermat, Anda akan menemukan 2 S di bidang izin. S pertama adalah SUID dan yang kedua adalah SGID.
– Ketika perintah atau skrip dengan set bit SUID dijalankan, UID efektifnya menjadi milik pemilik file, bukan pengguna yang sedang menjalankannya.
– Contoh lain SUID yang baik adalah perintah su :
# ls -l /bin/su -rwsr-xr-x-x 1 root user 16384 Jan 12 2014 /bin/su
– Izin setuid ditampilkan sebagai “s” di bidang eksekusi pemilik.
Bagaimana cara menyetel SUID pada file?
# chmod 4555 [path_to_file]Catatan :
Jika huruf kapital "S" muncul di kolom eksekusi pemilik, ini menunjukkan bahwa bit setuid aktif, dan bit eksekusi "x" untuk pemilik file mati atau ditolak.
Identifikasi grup-set (SGID)
Izin SGID pada file yang dapat dieksekusi
– Izin SGID mirip dengan izin SUID, hanya perbedaannya – ketika skrip atau perintah dengan SGID aktif dijalankan, ia berjalan seolah-olah itu adalah anggota dari grup yang sama di mana file tersebut menjadi anggota.
# ls -l /usr/bin/write -r-xr-sr-x 1 root tty 11484 Jan 15 17:55 /usr/bin/write
– Izin setgid ditampilkan sebagai “s” di bidang eksekusi grup.
Catatan :– Jika huruf kecil “l” muncul di bidang eksekusi grup, ini menunjukkan bahwa bit setgid aktif, dan bit eksekusi untuk grup mati atau ditolak.
Bagaimana cara mengatur GUID pada file?
# chmod 2555 [path_to_file]
SGID pada direktori
– Ketika izin SGID diatur pada direktori, file yang dibuat di direktori tersebut akan menjadi milik grup di mana direktori tersebut menjadi anggotanya.
– Misalnya jika pengguna yang memiliki izin menulis di direktori membuat file di sana, file tersebut adalah anggota dari grup yang sama dengan direktori dan bukan grup pengguna.
– Ini sangat berguna dalam membuat direktori bersama.
Cara menyetel SGID pada direktori
# chmod g+s [path_to_directory]
Bit Lengket
– Bit sticky terutama digunakan pada direktori bersama.
– Berguna untuk direktori bersama seperti /var/tmp dan /tmp karena pengguna dapat membuat file, membaca dan mengeksekusi file milik pengguna lain, tetapi tidak diperbolehkan untuk menghapus file milik pengguna lain.
– Misalnya jika pengguna bob membuat file bernama /tmp/bob, pengguna lain tom dapat tidak menghapus file ini meskipun direktori /tmp memiliki izin 777. Jika sticky bit tidak disetel, maka tom dapat menghapus /tmp/bob, karena file /tmp/bob mewarisi izin direktori induk.
– pengguna root (Tentu saja!) dan pemilik file dapat menghapus file mereka sendiri.
Contoh sticky bit :
# ls -ld /var/tmp drwxrwxrwt 2 sys sys 512 Jan 26 11:02 /var/tmp
- T refers to when the execute permissions are off. - t refers to when the execute permissions are on.
Bagaimana cara menyetel izin sticky bit?
# chmod +t [path_to_directory] or # chmod 1777 [path_to_directory]