Skip to content

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

root@debian:/# ls -l /home
total 16
drwxr-xr-x 12 rehan   rehan   4096 May 16 11:06 rehan

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
Terlihat folder 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

root@debian:/home# chown student /home/permisi
Sekarang mari kita lihat setelah melakukan perintah diatas ada perubahan atau tidak.

ls -ld permisi
total 20
drwxr-xr-x  2 student student 4096 May 18 09:17 permisi
Terlihat pada kolom ke tiga dan keempat , kepemilikan dari folder 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 dahulu
root@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
Sebagaimana terlihat pada kolom 3 dan 4 , sekarang folder permisi telah menjadi kepunyaan user rehan dan kepunyaan user cobadoang. Kita juga dapat hanya mengganti kepemilikan group dengan cara seperti berikut
root@debian:/home# chown :student /home/permisi
Sekarang mari kita lihat apakah ada perubahan.
root@debian:/home# ls -l
total 20
drwxr-xr-x  2 rehan   student 4096 May 18 09:17 permisi
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

  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
    
  2. Membuat group dengan nama Barcelona dan Madrid
    root@debian:/home# groupadd barcelona
    root@debian:/home# groupadd madrid
    
  3. Membuat Folder/Direktori dengan nama Barcelona dan Madrid didalam /home
    root@debian:/home# cd /home
    root@debian:/home# mkdir barcelona madrid
    
  4. Membuat File Daftar-Pemain.txt didalam Direktori Barcelona dan Real Madrid.
    root@debian:/home# touch barcelona/daftar-pemain.txt
    root@debian:/home# touch madrid/daftar-pemain.txt
    
  5. Memasukkan Tono dan Tina kedalam group Barcelona.
    root@debian:/home# adduser tono barcelona
    Adding user `tono' to group `barcelona' ...
    Adding user tono to group barcelona
    Done.
    root@debian:/home# adduser tina barcelona
    Adding user `tina' to group `barcelona' ...
    Adding user tina to group barcelona
    Done.
    
  6. Memasukkan Toni dan Tini kedalam group Madrid.
    root@debian:/home# adduser toni madrid
    Adding user `toni' to group `madrid' ...
    Adding user toni to group madrid
    Done.
    root@debian:/home# adduser tini madrid
    Adding user `tini' to group `madrid' ...
    Adding user tini to group madrid
    Done.
    
  7. Mengubah kepemilikan Folder Barcelona menjadi milik user Tono dan group Barcelona
    root@debian:/home# chown -R tono:barcelona /home/barcelona/
    
  8. Mengubah kepemilikan Folder Madrid menjadi milik user Toni dan group Madrid
    root@debian:/home# chown -R toni:madrid /home/madrid/
    
  9. Melihat permission file `/barcelona/daftar-pemain.txt

  10. Login Sebagai User Tono kemudian edit file Barcelona/Daftar-Pemain.txt

    root@debian:~# su - tono
    tono@debian:~$ nano /home/barcelona/daftar-pemain.txt
    
         /home/barcelona/daftar-pemain.txt *
    LIonel messi
    Emile smithrowe
    
    ^G Help      ^O Write Out ^W Where Is  ^K Cut
    ^X Exit      ^R Read File ^\ Replace   ^U Paste 
    

  11. Login Sebagai User Tina kemudian edit file Barcelona/Daftar-Pemain.txt
    tono@debian:~$ su - tina
    Password:
    tina@debian:~$ nano /home/barcelona/daftar-pemain.txt 
    
      /home/barcelona/daftar-pemain.txt               
    
    LIonel messi
    Emile smithrowe
    
    File '/home/barcelona/daftar-pemain.txt' is unwritable
    
  12. Login Sebagai User Toni kemudian edit file Madrid/Daftar-Pemain.txt

    root@debian:~# su - toni
    toni@debian:~$ nano /home/madrid/daftar-pemain.txt
    
      GNU nano 5.4    /home/madrid/daftar-pemain.txt            
    roneldo
    artinya apa bang messi
    
                          [ Read 2 lines ]
    ^G Help     ^O Write Out^W Where Is ^K Cut      ^T Execute
    ^X Exit     ^R Read File^\ Replace  ^U Paste    ^J Justify
    

  13. Login sebagai user Tini kemudian edit file Madrid/Daftar-Pemain.txt

    toni@debian:~$ su - tini
    Password:
    tini@debian:~$ nano /home/madrid/daftar-pemain.txt
    
            GNU nano 5.4    /home/madrid/daftar-pemain.txt             
    roneldo
    artinya apa bang messi
    
       [ File '/home/madrid/daftar-pemain.txt' is unwritable ]
    

  14. 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
15. Melihat kepemilikan file daftar-pemain.txt

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 !!!

  1. Buat lah 2 buah user dengan nama budi dan jono.
  2. Buat lah 2 buah folder di /home dengan nama marketing dan keuangan
  3. Buatlah Group dengan nama pegawai
  4. Masukkan user budi dan jono kedalam group pegawai
  5. Ubah kepemilikan folder marketing dan subdirektorinya menjadi kepemilikan user budi dan group pegawai
  6. Ubah kepemilikan folder keuangan dan subdirektorinya menjadi kepemilikan user jono dan group pegawai
  7. Buktikan Kepemilikan user budi terhadap folder marketing.
  8. Buktikan kepemilikan user jono terhadap folder keuangan.

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
    rehan@debian:~$ su -
    Password:
    
  • Membuat folder baru
    root@debian:~# cd /home
    root@debian:/home# mkdir chmod_nomor
    
  • cek status hak akses

    root@debian:/home# ls -l
    drwxr-xr-x  2 root    root      4096 May 23 09:08 chmod_nomor
    

  • Merubah hak akses

    root@debian:/home# chmod 754 /home/chmod_nomor
    

  • Cek kembali status hak akses

    root@debian:/home# ls -l
    total 52
    drwxr-xr--  2 root    root      4096 May 23 09:08 chmod_nomor
    

Terlihat sudah ada perubahan yang tadinya drwxr-xr-x menjadi drwxr-xr--

Note

Untuk memberikan hak akses juga ke subdirektori bisa menggunakan -R

chmod 754 -R /home/chmod_nomor

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 !!!

  1. Buatlah 2 buah user dengan nama chmod1 dan chmod2.

    rehan@debian:~$ su -
    Password:
    root@debian:~# useradd chmod1
    root@debian:~# passwd chmod1
    New password:
    Retype new password:
    passwd: password updated successfully
    
    root@debian:~# useradd chmod2
    root@debian:~# passwd chmod2
    New password:
    Retype new password:
    passwd: password updated successfully
    

  2. buat group dengan nama chmodders

    root@debian:~# groupadd chmodders
    

  3. memasukkan chmod1 dan chmod2 kedalam group chmodders

    root@debian:~# adduser chmod1 chmodders
    Adding user `chmod1' to group `chmodders' ...
    Adding user chmod1 to group chmodders
    Done.
    
    root@debian:~# adduser chmod2 chmodders
    Adding user `chmod2' to group `chmodders' ...
    Adding user chmod2 to group chmodders
    Done.
    

  4. buatlah sebuah folder di /home dengan nama chmodders1 dan chmodder2

    root@debian:~# cd /home
    root@debian:/home# mkdir chmodders1 chmodders2
    

  5. ubah kepemilikan folder chmodders1 menjadi milik user chmod1 dan group chmodders.
    root@debian:/home# chown -R chmod1:chmodders /home/chmodders1
    
  6. Ubah kepemilikan folder chmodders2 menjadi milik user chmod2 dan group chmodders.
    root@debian:/home# chown -R chmod2:chmodders /home/chmodders2
    
  7. Mengubah hak akses folder chmodders1 menjadi
    (u) user = Bisa read, write, execute
    (g) Group = bisa read saja
    (o) Others = tidak bisa melakukan apa apa.
    root@debian:/home# chmod 740 -R /home/chmodders1
    
  8. Buktikan hak akses user pada folder `chmodders1
    root@debian:~# su - chmod1
    su: warning: cannot change directory to /home/chmod1: No such file or directory
    $ cd /home/chmodders1
    $ touch chmod.txt
    $ ls
    chmod.txt
    $
    
  9. Buktikan Hak Akses group pada folder chmodders1

    $ su - chmod2
    Password:
    su: warning: cannot change directory to /home/chmod2: No such file or directory
    $ cd /home/chmodders1
    -sh: 1: cd: can't cd to /home/chmodders1
    $ ls /home/chmodders1
    chmod.txt
    $
    

  10. 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 :

  1. menghapus hak akses read dan write untuk user pada folder /home/chmodders2
    root@debian:~# chmod u-rw /home/chmodders2
    root@debian:~# ls -ld /home/chmodders2
    d--xr-xr-x 2 chmod2 chmodders 4096 May 24 09:28 /home/chmodders2
    
  2. 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
    $
    
  3. Menambahkan hak akses rwx pada group dan others terhadap folder /home/chmodders2
    $ su -
    Password:
    root@debian:~# chmod go+rwX /home/chmodders2
    root@debian:~# ls -ld /home/chmodders2
    d--xrwxrwx 2 chmod2 chmodders 4096 May 24 09:28 /home/chmodders2
    

Tugas Mandiri #2

  1. Buat folder dengan nama tug4sdidalam /home kemudian buat file txt didalamnya.
  2. Buat lah group baru dengan nama group_tug4s.
  3. Masukkan user tono tina tini kedalam group tugas.
  4. Ubahlah kepemilikan folder tug4s secara recursive menjadi kepemilikan user student dan group group_tug4s.
  5. Ubahlah permission/hak akses user [rwx] , group [r--] , others [-wx] terhadap folder tug4s secara recursive.
  6. Buktikan hak akses user terhadap folder tug4s
  7. Buktikan hak akses group terhadap folder tug4s
  8. Buktikan hak akses others terhadap folder tug4s

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.