Masih berlanjut pembahasan mengenai hak izin akses (access permission). Kalau artikel kemarin kita hanya membahas hanya pada tahap pengenalan apa itu access permission dan macam-macam atribut yang berkenaan dengan berkas. Nah pembahasan sekarang ini, akan kita bahas tentang bagimana cara merubah access permission tersebut di GNU/Linux.
Perlu diketahui tutorial di sini adalah tutorial standar GNU/Linux. Ini artinya tidak berpengaruh terhadap distro Linux apa yang Anda gunakan. Memang pada kenyataannya dalam penulisan ini, saya mempraktekannya di distro Arch Linux.
Nilai Permission
Sebelum masuk ke cara merubah permission. Ada beberapa nilai yang perlu kita ketahui.
Nilai Standar
Nilai | Nama |
---|---|
1 | Execute |
2 | Write |
4 | Read |
Nilai Gabungan
Lalu jika kita ingin menjadikan suatu berkas tersebut memiliki permission baca dan tulis tinggal tambahkan saja. r = 4
, w=2
jadi 4+2 = 6
. Jadi permission untuk r+w adalah 6
.
Nilai | Gabungan | Nama |
---|---|---|
1 | 0 + 1 | Execute |
2 | 0 + 2 | Write |
3 | 2 + 1 | Write + Execute |
4 | 0 + 4 | Read |
5 | 4 + 1 | Read + Execute |
6 | 4 + 2 | Read + Write |
7 | 4 + 2 + 1 | Read + Write + Execute |
Sederhananya lihat gambar diagram berikut:
[caption id=“attachment_2238” align=“alignnone” width=“332”] Sumber gambar:
https://blog.linoxide.com/wp-content/uploads/2012/09/Linux_permissions.png[/caption]
chmod
Untuk mengubah suatu permission di GNU/Linux kita gunakan chmod dari Terminal. Perintah sederhananya:
chmod 0641 nama_berkas
atau bisa Anda gunakan tambahan sudo
.
sudo chmod 0641 nama_berkas
Penjelasan
Pada baris 0641
merupakan kombinasi angka 6 untuk user
, 4 untuk group
, dan 1 untuk others
. Adapun untuk angka nol di awal merupakan special permission, untuk mengatur sticky bit
, suid
, guid
, boleh ditulis boleh tidak (mengenai ini akan dibahas di artikel selanjutnya). Saran saya lebih baik ditulis untuk memudahkan orang lain membacanya.
Jika kita sulit untuk membaca notasi angka, kita bisa menulis permission dengan notasi huruf, seperti r
, w
, x
. Adapun penulisnya disesuaikan dengan UGO (User Group Others) . Contoh:
chmod u=r+w,g=r,o=x nama_berkas
Jika ingin semua gunakan notasi A (all) .
chmod a=r+w+x nama_berkas
Kita juga bisa menyingkatnya menjadi:
chmod -w nama_berkas
Perhatian penyingkatan kata tersebut sama berlakunya dengan penyingkatan a
. Artinya jika Anda menulis chmod -w
sama dengan chmod a-w
.
Untuk notasi plus (+
) merupakan notasi untuk di-set . Jika kita mau di-unset tinggal diubah saja menjadi minus (-
) . Sedangkan notasi sama dengan (=
) artinya reset (mengeset ulang), contoh
chmod u=r-w,g=r,o=w+x nama_berkas
atau
chmod u=r-w,g+r,o-x nama_berkas
Rekursif
Jika berkas dalam suatu direktori ingin kita sama semua bisa kita gunakan argumen -R
contoh:
chmod 0644 -R /tempat/direktori/
Perhatian perintah rekursif ini berlaku untuk seluruh berkas ataupun direktori yang berada dalam direktori yang diset tersebut. Artinya jika Anda mengeset direktori /tempat/direktori/
artinya semua berkas yang berada di sana akan diset menjadi 0644
. Lalu bagimana jika kita ingin memberikan permission hanya pada berkas saja atau direktori saja? Kita bisa memanfaatkan kombinasi antara chmod
dengan find
.
Contoh untuk mengset hanya pada berkas saja:
find /tempat/direktori -type f -exec chmod 0644 {} \;
Contoh untuk mengset hanya pada direktori saja:
find /tempat/direktori -type d -exec chmod 0755 {} \;
Perhatian! Cermati betul perintah di atas, jangan sampai salah untuk tanda \;
setelah {}
harus dispasi .
chown
Pada perintah di atas kita hanya mengeset kepemilikan pada user
yang sedang digunakan. Bagaimana jika untuk mengubah kepemilikan dari salah satu user
ke user
lainnya? Atau memasukan salah satu user
ke salah satu group
agar disamakan permission-nya dengan salah satu group
tersebut? Kita gunakan perintah chmod
, adapun perintahnya adalah sebagai berikut:
sudo chown user:group /nama/direktori/atau/berkas -R
Penjelasan
Untuk perintah chown
kita wajib gunakan sudo
. Sedangkan user
dan group
sesuaikan dengan namanya. Bagaimana jika kita tidak tahu user
atau group
yang itu apa saja? Kita bisa gunakan perintah berikut untuk mengetahui isi user
:
cut -d: -f1 /etc/passwd | less
Untuk mengetahui isi group
:
cut -d: -f1 /etc/group | less
Adapun perintah atau argumen -R
di atas, merupakan rekursif artinya jika Anda cuma ingin merubah satu direktori atau satu berkas, bisa hilangkan argumen rekursif tersebut.
Current User/Group
Perintah chown
di atas adalah bagaimana kita mengeset ulang pada user
atau group
. Bagaimana jika kita hanya ingin menganti user
nya saja atau group
-nya saja? Berikut ini perintah untuk menganti group
kepemilikian dari current user (pengguna yang sedang digunakan saat ini).
sudo chown :group /nama/direktori/atau/berkas
Untuk menganti kepemilikan pengguna menggunakan current group:
sudo chown user: /nama/direktori/atau/berkas
Kita jika bisa menambahkan argumen rekursif -R
:
sudo chown user: /nama/direktori/atau/berkas -R sudo chown :group /nama/direktori/atau/berkas -R
Kesimpulan
chmod
adalah perintah untuk merubah hak izin akses (access permission), sedangkan chown
adalah perintah untuk menganti kepemilikan. Kita melihat perintah chmod 0644 berkas
, perintah tersebut berarti untuk user=6
,group=4
,others=4
adapun perintah 0
di awal merupakan special permission yang digunakan untuk mengeset sticky bit
, suid
, dan guid
. Pelajaran mengenai itu, akan kita bahas pada artikel selanjutnya. Fokus pertama, kita pahami dulu perintah UGO (user group others).
Semoga bermanfaat.
Sumber
* man chmod
* man chown
* man find
* <a href="https://wiki.archlinux.org/index.php/File_permissions_and_attributes" target="_blank">https://wiki.archlinux.org/index.php/File_permissions_and_attributes</a>
* <a href="https://askubuntu.com/questions/410244/a-command-to-list-all-users-and-how-to-add-delete-modify-users" target="_blank">https://askubuntu.com/questions/410244/a-command-to-list-all-users-and-how-to-add-delete-modify-users</a>
Komentar