GNU/Linux >> Belajar Linux >  >> Linux

Memahami Izin File Linux

Di Linux, izin file, atribut, dan kepemilikan mengontrol tingkat akses yang harus diproses oleh sistem dan pengguna ke file. Ini memastikan bahwa hanya pengguna dan proses yang berwenang yang dapat mengakses file dan direktori tertentu.

Izin File Linux #

Model izin Linux dasar bekerja dengan mengaitkan setiap file sistem dengan pemilik dan grup dan menetapkan hak akses izin untuk tiga kelas pengguna yang berbeda:

  • Pemilik file.
  • Anggota grup.
  • Lainnya (semua orang).

Kepemilikan file dapat diubah menggunakan chown dan chgrp perintah.

Tiga jenis izin file berlaku untuk setiap kelas pengguna:

  • Izin membaca.
  • Izin menulis.
  • Izin eksekusi.

Konsep ini memungkinkan Anda untuk mengontrol pengguna mana yang dapat membaca file, menulis ke file, atau mengeksekusi file.

Untuk melihat izin file, gunakan ls perintah:

ls -l file_name
-rw-r--r-- 12 linuxize users 12.0K Apr  28 10:10 file_name
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

Karakter pertama menunjukkan jenis file. Ini bisa berupa file biasa (- ), direktori (d ), tautan simbolis(l ), atau jenis file khusus lainnya. Sembilan karakter berikut mewakili izin file, tiga kembar tiga masing-masing tiga karakter. Triplet pertama menunjukkan izin pemilik, yang kedua izin grup, dan triplet terakhir menunjukkan izin orang lain.

Pada contoh di atas (rw-r--r-- ) berarti pemilik file memiliki izin baca dan tulis (rw- ), grup dan lainnya hanya memiliki izin baca (r-- ).

Izin file memiliki arti yang berbeda tergantung pada jenis file.

Masing-masing dari tiga triplet izin dapat dibuat dari karakter berikut dan memiliki efek yang berbeda, tergantung pada apakah mereka disetel ke file atau direktori:

Pengaruh Izin pada File

Izin Karakter Arti pada File
Baca - File tidak dapat dibaca. Anda tidak dapat melihat konten file.
r File dapat dibaca.
Menulis - File tidak dapat diubah atau dimodifikasi.
w File dapat diubah atau dimodifikasi.
Jalankan - File tidak dapat dieksekusi.
x File dapat dieksekusi.
s Jika ditemukan di user triplet, ini menetapkan setuid sedikit. Jika ditemukan di group triplet, ini mengatur setgid sedikit. Ini juga berarti bahwa x flag disetel.
Bila setuid atau setgid flag diatur pada file yang dapat dieksekusi, file tersebut dieksekusi dengan pemilik file dan/atau hak grup.
S Sama seperti s , tetapi x bendera tidak diatur. Bendera ini jarang digunakan pada file.
t Jika ditemukan di others triplet, ini mengatur sticky bit.
Ini juga berarti x bendera ditetapkan. Bendera ini tidak berguna pada file.
T Sama seperti, t tapi x bendera tidak diatur. Bendera ini tidak berguna pada file.

Pengaruh Izin pada Direktori (Folder)

Direktori adalah jenis file khusus yang dapat berisi file dan direktori lain.

Izin Karakter Arti pada Direktori
Baca - Isi direktori tidak dapat ditampilkan.
r Isi direktori dapat ditampilkan.
(mis., Anda dapat membuat daftar file di dalam direktori dengan ls .)
Menulis - Isi direktori tidak dapat diubah.
w Isi direktori dapat diubah.
(mis., Anda dapat membuat file baru, menghapus file ..dst.)
Jalankan - Direktori tidak dapat diubah menjadi.
x Direktori dapat dinavigasi menggunakan cd .
s Jika ditemukan di user triplet, ini menetapkan setuid sedikit. Jika ditemukan di group triplet itu mengatur setgid sedikit. Ini juga berarti bahwa x bendera ditetapkan. Ketika setgid flag disetel pada direktori, file baru yang dibuat di dalamnya mewarisi ID grup direktori (GID) alih-alih ID grup utama pengguna yang membuat file.
setuid tidak berpengaruh pada direktori.
S Sama seperti s , tetapi x bendera tidak diatur. Bendera ini tidak berguna di direktori.
t Jika ditemukan di others triplet, ini mengatur sticky bit.
Ini juga berarti x bendera ditetapkan. Saat sticky bit disetel pada direktori, hanya pemilik file, pemilik direktori, atau pengguna administratif yang dapat menghapus atau mengganti nama file di dalam direktori.
T Sama seperti t , tetapi x bendera tidak diatur. Bendera ini tidak berguna di direktori.

Mengubah izin File #

Izin File dapat diubah menggunakan chmod memerintah. Hanya root, pemilik file, atau pengguna dengan hak sudo yang dapat mengubah izin file. Berhati-hatilah saat menggunakan chmod , terutama saat mengubah izin secara rekursif. Perintah dapat menerima satu atau lebih file dan/atau direktori yang dipisahkan oleh spasi sebagai argumen.

Izin dapat ditentukan menggunakan mode simbolik, mode numerik, atau file referensi.

Metode Simbolik (Teks) #

Sintaks dari chmod perintah saat menggunakan mode simbolik memiliki format berikut:

chmod [OPTIONS] [ugoa…][-+=]perms…[,…] FILE...

Kumpulan bendera pertama ([ugoa…] ), tanda pengguna, mendefinisikan kelas pengguna yang izin filenya diubah.

  • u - Pemilik file.
  • g - Pengguna yang menjadi anggota grup.
  • o - Semua pengguna lain.
  • a - Semua pengguna, identik dengan ugo .

Saat bendera pengguna dihilangkan, defaultnya adalah a .

Kumpulan bendera kedua ([-+=] ), flag operasi, menentukan apakah izin akan dihapus, ditambahkan, atau disetel:

  • - - Menghapus izin yang ditentukan.
  • + - Menambahkan izin tertentu.
  • = - Mengubah izin saat ini ke izin yang ditentukan. Jika tidak ada izin yang diberikan setelah = simbol, semua izin dari kelas pengguna yang ditentukan akan dihapus.

Izin (perms... ) secara eksplisit diatur menggunakan nol atau satu atau lebih huruf berikut:r , w , x , X , s , dan t . Gunakan satu huruf dari kumpulan u , g , dan o saat menyalin izin dari satu kelas ke kelas pengguna lain.

Saat mengatur izin untuk lebih dari satu kelas pengguna ([,…] ), gunakan koma (tanpa spasi) untuk memisahkan mode simbolis.

Berikut adalah beberapa contoh cara menggunakan chmod perintah dalam mode simbolis:

  • Berikan izin kepada anggota grup untuk mengeksekusi file, tetapi tidak membaca dan menulisnya:

    chmod g=x filename
  • Hapus izin menulis untuk semua pengguna:

    chmod a-w filename
  • Hapus izin eksekusi untuk pengguna lain secara rekursif:

    chmod -R o-x dirname
  • Hapus izin baca, tulis, dan eksekusi untuk semua pengguna kecuali pemilik file:

    chmod og-rwx filename

    Hal yang sama juga dapat dilakukan dengan menggunakan formulir berikut:

    chmod og= filename
  • Berikan izin baca, tulis, dan eksekusi kepada pemilik file, izin baca ke grup file, dan tidak ada izin untuk semua pengguna lain:

    chmod u=rwx,g=r,o= filename

Metode Numerik #

Sintaks dari chmod perintah saat menggunakan mode simbolik memiliki format berikut:

chmod [OPTIONS] NUMBER FILE...

Saat menggunakan mode numerik, Anda dapat mengatur izin untuk ketiga kelas pengguna (pemilik, grup, dan lainnya) secara bersamaan.

Nomor izin dapat berupa angka 3 atau 4 digit. Saat 3 digit angka digunakan, digit pertama mewakili izin pemilik file, yang kedua grup file, dan yang terakhir semua pengguna lain.

Setiap izin menulis, membaca, dan mengeksekusi memiliki nilai angka berikut:

  • r (baca) =4
  • w (tulis) =2
  • x (eksekusi) =1
  • tidak ada izin =0

Nomor izin kelas pengguna tertentu diwakili oleh jumlah nilai izin untuk grup tersebut.

Untuk mengetahui izin file dalam mode numerik, cukup hitung total untuk semua kelas pengguna. Misalnya, untuk memberikan izin baca, tulis, dan eksekusi ke pemilik file, izin baca dan eksekusi ke grup file, dan izin baca saja ke semua pengguna lain, Anda harus melakukan hal berikut:

  • Pemilik:rwx=4+2+1=7
  • Grup:r-x=4+0+1=5
  • Lainnya:r-x=4+0+0=4

Dengan menggunakan cara di atas, kita sampai pada angka 754 , yang mewakili izin yang diinginkan.

Untuk mengatur setuid , setgid , dan sticky bit bendera, gunakan empat digit angka.

Bila 4 digit angka yang digunakan, digit pertama memiliki arti sebagai berikut:

  • setuid=4
  • setgid=2
  • lengket=1
  • tidak ada perubahan =0

Tiga digit berikutnya memiliki arti yang sama seperti saat menggunakan 3 digit angka.

Jika digit pertama adalah 0 dapat dihilangkan, dan mode dapat diwakili dengan 3 digit. Mode numerik 0755 sama dengan 755 .

Untuk menghitung mode numerik, Anda juga dapat menggunakan metode lain (metode biner), tetapi sedikit lebih rumit. Mengetahui cara menghitung mode numerik menggunakan 4, 2, dan 1 sudah cukup untuk sebagian besar pengguna.

Anda dapat memeriksa izin file dalam notasi numerik menggunakan stat perintah:

stat -c "%a" file_name

Berikut adalah beberapa contoh cara menggunakan chmod perintah dalam mode numerik:

  • Berikan izin baca dan tulis kepada pemilik file dan izin baca saja kepada anggota grup dan semua pengguna lain:

    chmod 644 dirname
  • Berikan izin membaca, menulis, dan mengeksekusi kepada pemilik file, izin membaca dan mengeksekusi kepada anggota grup dan tidak memberikan izin kepada semua pengguna lain:

    chmod 750 dirname
  • Berikan izin baca, tulis, dan eksekusi, dan sedikit sticky ke direktori tertentu:

    chmod 1777 dirname
  • Setel izin baca, tulis, dan eksekusi secara rekursif ke pemilik file dan tidak ada izin untuk semua pengguna lain di direktori tertentu:

    chmod -R 700 dirname

Kesimpulan #

Di Linux, akses ke file dibatasi menggunakan izin file, atribut, dan kepemilikan. Untuk mengubah izin file, gunakan chmod perintah.


Linux
  1. Izin Linux:Pengantar chmod

  2. Linux – Memahami Izin Unix Dan Jenis File?

  3. Izin File di Linux dengan Contoh

  1. Periksa izin file Linux dengan ls

  2. Izin File di Linux – Baca/Tulis/Jalankan

  3. Memahami File Konfigurasi /etc/profile di Linux

  1. Dasar-dasar Izin File Linux

  2. Linux – Semuanya Adalah File?

  3. Memahami Bagaimana Umask Mengontrol Izin File / Direktori Awal di Linux