File Permission
Pada sub bab ini, akan dibahas mengenaifile dan direktori. Dari segi tingkat hak akses, hak akses itu sendiri dibedakan menjadi tiga, yaitu read (r), write (w), dan executable (x). Sedangkan dari segi pemilik hak akses, hak akses dibedakan menjadi tiga juga, yaitu user/owner (u), groups (g), dan other (o). Sebelum melangkah lebih jauh, kita akan belajar membaca hak akses suatu file atau direktori. Perhatikan perintah berikut
Pada kolom pertama drwxr-xr-x
merupakan permission file dari directory rehan
. Dapat dibagi menjadi 4 bagian [d] [rwx] [r-x] [r-x]
, keempat bagian tersebut dapat diartikan sebagai berikut :
1. [d]
= menandakan sebuah direktori/folder.
2. [rwx]
= Menandakan permission untuk User/Owner, dengan pola permission [rwx]
maka user/owner memiliki hak penuh terhadap file/folder tersebut. User/owner dapat melakukan read, write dan execute.
3. [r-x]
= Menandakan permission untuk Group, dengan pola permission [r-x]
maka user yang merupakan anggota group tersebut dapat melakukan read dan execute namun tidak dapat melakukan write.
4. [r-x]
= Menandakan permission untuk Others (Bukan user/owner ataupun anggota group), dengan pola permission [r-x]
maka Others memiliki kewenangan yang sama seperti user Group.
Kemudian pada kolom ketiga rehan
merupakan user pemilik dari direktori tersebut, sedangkan pada kolom keempat rehan
merupakan group pemilik dari direktori tersebut, dan kolom terakhir rehan
merupakan nama file/direktori tersebut.
chown
Perintah ini digunakan untuk merubah kepemilikan suatu file/direktori terhadap user dan group. Sebelum kita mencoba perintah chown
ada baiknya kita membuat sebuah folder baru dan melihat permission nya agar nanti kita dapat membandingkan sebelum dan sesudah memasukkan perintah chown
.
rehan@debian:~$ su -
Password:
root@debian:~# cd /home
root@debian:/home# mkdir permisi
root@debian:/home# ls -ld permisi
total 20
drwxr-xr-x 2 root root 4096 May 18 09:17 permisi
permisi
yang kita buat merupakan kepunyaan user root
dan group root
. Sekarang kita akan coba merubah kepemilikan folder permisi
menjadi kepunyaan user student
.
Note
ls -ld
hanya digunakan untuk melihat sebuah folder, untuk melihat file gunakan perintah ls-l
saja
permisi
telah berubah menjadi kepunyaan user student
dan kepunyaan group student
. Secara otomatis chown
akan mengisikan student
pada kolom ke-empat karena kita tidak mendefinisikan group pemiliknya. Berikut contoh apabila kita sertakan group pemilik dalam perintah chown
. Tapi sebelumnya kita buat group baru terlebih dahuluroot@debian:/home# groupadd cobadoang
root@debian:/home# chown rehan:cobadoang /home/permisi
root@debian:/home# ls -l
total 20
drwxr-xr-x 2 rehan cobadoang 4096 May 18 09:17 permisi
permisi
telah menjadi kepunyaan user rehan
dan kepunyaan user cobadoang
. Kita juga dapat hanya mengganti kepemilikan group dengan cara seperti berikut
Sekarang mari kita lihat apakah ada perubahan.
Terlihat folder permisi
sudah menjadi kepunyaan dari group student
.
Note
Apabila folder memiliki subdirektori (anak) gunakan option -R
, agar perintah chown juga berlaku ke subdirektorinya, maka syntaxnya menjadi
chown -R [user]:[group] [path file/folder]
.
Praktikum Mandiri #1
- Membuat User baru dengan nama Tono, Toni, Tini dan Tina
root@debian:/home# adduser tono Adding user `tono' ... Adding new group `tono' (1008) ... Adding new user `tono' (1004) with group `tono' ... Creating home directory `/home/tono' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for tono Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y root@debian:/home# adduser toni Adding user `toni' ... Adding new group `toni' (1009) ... Adding new user `toni' (1005) with group `toni' ... Creating home directory `/home/toni' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for toni Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y root@debian:/home# adduser tini Adding user `tini' ... Adding new group `tini' (1010) ... Adding new user `tini' (1006) with group `tini' ... Creating home directory `/home/tini' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for tini Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y root@debian:/home# adduser tina Adding user `tina' ... Adding new group `tina' (1011) ... Adding new user `tina' (1007) with group `tina' ... Creating home directory `/home/tina' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for tina Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y
- Membuat group dengan nama Barcelona dan Madrid
- Membuat Folder/Direktori dengan nama Barcelona dan Madrid didalam /home
- Membuat File Daftar-Pemain.txt didalam Direktori Barcelona dan Real Madrid.
- Memasukkan Tono dan Tina kedalam group Barcelona.
- Memasukkan Toni dan Tini kedalam group Madrid.
- Mengubah kepemilikan Folder Barcelona menjadi milik user
Tono
dan groupBarcelona
- Mengubah kepemilikan Folder Madrid menjadi milik user
Toni
dan groupMadrid
-
Melihat permission file `/barcelona/daftar-pemain.txt
-
Login Sebagai User Tono kemudian edit file Barcelona/Daftar-Pemain.txt
- Login Sebagai User Tina kemudian edit file Barcelona/Daftar-Pemain.txt
-
Login Sebagai User Toni kemudian edit file Madrid/Daftar-Pemain.txt
-
Login sebagai user Tini kemudian edit file Madrid/Daftar-Pemain.txt
- Login sebagai root kemudian cek status kepemilikan folder barcelona dan real madrid
tini@debian:~$ su -
Password:
root@debian:~# ls -l /home
drwxr-xr-x 2 tono barcelona 4096 May 18 11:27 barcelona
drwxr-xr-x 2 root root 4096 May 18 10:58 cuaks
drwxr-xr-x 2 toni madrid 4096 May 23 06:11 madrid
root@debian:~# ls -l /home/barcelona/
total 4
-rw-r--r-- 1 tono barcelona 30 May 18 11:27 daftar-pemain.txt
root@debian:~# ls -l /home/madrid/
total 4
-rw-r--r-- 1 toni madrid 31 May 23 06:09 daftar-pemain.txt
Tugas Mandiri 1 !!!
- Buat lah 2 buah user dengan nama
budi
danjono
. - Buat lah 2 buah folder di
/home
dengan namamarketing
dankeuangan
- Buatlah Group dengan nama
pegawai
- Masukkan user
budi
danjono
kedalam grouppegawai
- Ubah kepemilikan folder
marketing
dan subdirektorinya menjadi kepemilikan userbudi
dan grouppegawai
- Ubah kepemilikan folder
keuangan
dan subdirektorinya menjadi kepemilikan userjono
dan grouppegawai
- Buktikan Kepemilikan user
budi
terhadap foldermarketing
. - Buktikan kepemilikan user
jono
terhadap folderkeuangan
.
Warning
Tuliskan jawaban di file pdf, kemudian kirimkan ke channel pengumpulan di discord.
Chmod
chmod numeric
Perintah ini digunakan untuk merubah hak akses suatu file/direktori. Perintah ini memanfaatkan konversi bilangan biner ke desimal yang merepresentasikan hak akses rwx (read, write, executable). Perhatikan tabel berikut.
Hak Akses | rwx | rw- | r-x | r-- | -wx | -w- | --x | --- |
---|---|---|---|---|---|---|---|---|
Biner | 111 | 110 | 101 | 100 | 011 | 010 | 001 | 000 |
Desimal | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Pemberian hak akses menggunakan perintah chmod memiliki urutan UGO, yaitu user (u), group (g), dan other (o). Sehingga jika kita ingin memberikan hak akses read write dan executable untuk user, read dan executable untuk group, dan read untuk other, maka kita menggunakan angka 754. 7 untuk user (rwx), 5 untuk group (r-x), dan 4 untuk other (r--). Berikut contoh penggunaan perintah ini.
- Login sebagai root
- Membuat folder baru
-
cek status hak akses
-
Merubah hak akses
-
Cek kembali status hak akses
Terlihat sudah ada perubahan yang tadinya drwxr-xr-x
menjadi drwxr-xr--
Note
Untuk memberikan hak akses juga ke subdirektori bisa menggunakan -R
Kemudian dari drwxr-xr-- 2 root root 4096 May 23 09:08 chmod_nomor
bagaimana kah pembagian hak aksesnya dan user mana saja yang terdampak?
Jika lihat kembali rwx r-x r--
bisa diartikan bahwa :
- Folder chmod_nomor
merupakan milik user root
dan group root
- rwx
adalah hak akses untuk user Owner.
- r-x
adalah hak akses untuk user Anggota Group.
- r--
adalah hak akses untuk user selain dari user Owner dan anggota group.
Maka user yang terdampak rwx
adalah user root sebagai user owner/pemilik dari folder chmod_nomor
. Kemudian r-x
yang terdampak adalah user yang tergabung didalam group root
. Yang terakhir r--
user yang terdampak adalah user selain
dari pada user root
dan juga user yang tidak
tergabung didalam group root
.
Praktikum !!!
-
Buatlah 2 buah user dengan nama chmod1 dan chmod2.
-
buat group dengan nama chmodders
-
memasukkan chmod1 dan chmod2 kedalam group chmodders
-
buatlah sebuah folder di /home dengan nama
chmodders1
danchmodder2
- ubah kepemilikan folder
chmodders1
menjadi milik userchmod1
dan groupchmodders
. - Ubah kepemilikan folder
chmodders2
menjadi milik userchmod2
dan groupchmodders
. - Mengubah hak akses folder
chmodders1
menjadi
(u) user = Bisa read, write, execute
(g) Group = bisa read saja
(o) Others = tidak bisa melakukan apa apa. - Buktikan hak akses user pada folder `chmodders1
-
Buktikan Hak Akses group pada folder
chmodders1
-
Buktikan hak akses Others pada folder
chmodders2
root@debian:~# adduser testing Adding user `testing' ... Adding new group `testing' (1021) ... Adding new user `testing' (1013) with group `testing' ... Creating home directory `/home/testing' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for testing Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y root@debian:~# su - testing testing@debian:~$ cd /home/chmodders1 -bash: cd: /home/chmodders1: Permission denied testing@debian:~$ ls /home/chmodders1 ls: cannot open directory '/home/chmodders1': Permission denied
chmod symbolic
Metode symbolic menggunakan huruf untuk membedakan hak akses, u
untuk user, g
untuk group, o
untuk others dan a
untuk semua.
Dengan metode symbolic, kita tidak perlu memberikan hak akses secara utuh/lengkap (u,g,o,a). Kita dapat menambahkan dan mengurangi hak akses dengan +
dan -
atau =
apabila ingin memberikan hak akses secara utuh/lengkap.
Jika di metode numeric kita menggunakan angka untuk hak aksesnya, maka pada mode symbolic kita bisa menggunakan r
untuk read, w
untuk write, kemudian x
untuk execute.
Note
Ketika menggunakan chmod symbolic, gunakan X
besar untuk memberikan hak akses execute
(search) pada sebuah directory/folder. chmod juga bisa menggunakan options -R
(recursive).
Examples :
- menghapus hak akses
read
danwrite
untuk user pada folder/home/chmodders2
- Buktikan hak akses user terhadap folder
/home/chmodders
root@debian:~# su - chmod2 su: warning: cannot change directory to /home/chmod2: No such file or directory $ cd /home/chmodders2 $ ls ls: cannot open directory '.': Permission denied $ mkdir something mkdir: cannot create directory ‘something’: Permission denied $ ls -l ls: cannot open directory '.': Permission denied $
- Menambahkan hak akses
rwx
padagroup
danothers
terhadap folder/home/chmodders2
Tugas Mandiri #2
- Buat folder dengan nama
tug4s
didalam/home
kemudian buat file txt didalamnya. - Buat lah group baru dengan nama
group_tug4s
. - Masukkan user
tono
tina
tini
kedalam grouptugas
. - Ubahlah kepemilikan folder
tug4s
secara recursive menjadi kepemilikan userstudent
dan groupgroup_tug4s
. - Ubahlah permission/hak akses user
[rwx]
, group[r--]
, others[-wx]
terhadap foldertug4s
secara recursive. - Buktikan hak akses
user
terhadap foldertug4s
- Buktikan hak akses
group
terhadap foldertug4s
- Buktikan hak akses
others
terhadap foldertug4s
Warning
Seperti biasa kumpulkan di channel #pengumpulan tugas
Default File Permissions
Ketika kita membuat file atau folder baru, sistem akan memberikan hak-akses secara default. Jika yang kita buat adalah direktori
maka sistem akan memberikan hak akses 0777
(drwxrwxrwx). Jika yang kita buat adalah file
maka sistem akan memberikan hak akses 0666
(-rw-rw-rw-). Untuk keamanan, sistem tidak akan memberikan hak akses excecute/x
pada file
.