it-swarm-id.com

Bagaimana cara kerja izin file?

Bisakah Anda menjelaskan secara singkat konsep utama dan alat baris perintah yang digunakan untuk mengelola izin file?

37
guillermooo

Setiap file memiliki hak untuk tiga kategori berbeda:

  • pemilik file,
  • grup yang terkait dengan file tersebut, dan
  • semua orang.

Hak berarti hak untuk membaca file, hak untuk menulis ke file, atau hak untuk mengeksekusi file dalam kasus skrip atau program.

Di CLI, Anda mungkin

  • ganti pemilik dengan chown, mis. chown guillermooo
  • ubah grup dengan chgrp, mis. chgrp root
  • ganti hak dengan chmod, mis. chmod u+w filename.ext (Menambahkan izin menulis untuk pemilik file filename.ext)

Jika Anda ingin tahu lebih banyak tentang masing-masing alat ini, buka terminal dan ketik man [tool], mis. man chmod.

23
ParanoiaPuppy

Peringatan: Mengubah izin file dan direktori berpotensi berbahaya dan dapat membuat sistem Anda tidak dapat digunakan. Ketika dijalankan secara rekursif sebagai root pada jalur yang salah, kita mungkin sampai pada titik di mana kita harus menginstal ulang Ubuntu. Oleh karena itu ide yang baik untuk tidak mengubah izin di luar direktori HOME, dan menjalankan perintah secara rekursif karena root harus dihindari bila memungkinkan.

Izin file

Ubuntu telah mewarisi konsep izin dari Unix ketika untuk file atau direktori ada tiga tugas yang dapat kami izinkan atau tolak:

  • File/direktori r (baca) dapat dibuka untuk akses baca.
  • File/direktori w (tulis) dapat dibuka untuk akses tulis/edit.
  • x (mengeksekusi) file dapat dieksekusi karena program/direktori dapat dilalui.

( Melintasi direktori pada dasarnya berarti menggunakannya sebagai bagian dari nama jalur. Lihat https://unix.stackexchange.com/a/13891 atau - https://unix.stackexchange.com/questions/21251 untuk penjelasan lebih lanjut.)

Selain itu, kami memiliki tiga kasus tentang siapa kami memberikan izin:

  • u (pengguna) pemilik file diberikan izin apa pun.
  • g (grup) grup file milik diberi izin.
  • o (lainnya) semua yang lain diberikan izin.

Sekarang untuk mendapatkan kombinasi ini, kami menggunakan sistem biner di mana setiap bit mendefinisikan izin. Ini paling baik ditunjukkan pada Tabel berikut

    Permission | Binary | Octal  | User  | Group | Other |
    ======================================================
      r        |  100   |   4    |       |       |       |
      w        |  010   |   2    |       |       |       |
      x        |  001   |   1    |       |       |       |
    =======================================================
    Number

Sekarang kalau kita mau misalnya

a) yang dimiliki oleh pemilik file (= pengguna) rbenar, writus, dan exizin ecute,
b) grup file diberikan read dan exizin ecute, dan
c) yang lainnya hanya boleh dimiliki rakses ead.

Maka izin file yang dihasilkan akan:

 u   g   o
rwx r-x r--

Untuk mendapatkan ini dalam angka oktal, mis. untuk perintah chmodNAME _ atau ketika kita harus memahami pesan kesalahan kita perlu mengisi tabel di atas seperti di bawah ini:

    Permission | Binary | Octal  | User  | Group | Other |
    ======================================================
      r        |  100   |   4    |   4   |   4   |   4   |
      w        |  010   |   2    |   2   |   0   |   0   |
      x        |  001   |   1    |   1   |   1   |   0   |
    ======================================================
    Numbers add to                   7       5       4     

Setiap nomor izin perlu ditambahkan untuk jumlah pengguna (4 + 2 + 1 = 7), grup (4 + 0 + 1 = 5), dan lainnya (4 + 0 + 0 = 4). Jumlah yang dihasilkan kemudian adalah:

 u   g   o
 7   5   4

Kami sekarang memiliki dua opsi untuk mengubah bit izin dengan chmodname__:

chmod u+rwx g+rx o+r filename

atau lebih sederhana dengan

chmod 751 filename

Kedua perintah akan melakukan hal yang sama.

Izin default dari file yang baru dibuat di rumah kami adalah 664 (-rw-rw-r--).

Jika kita ingin file dapat dieksekusi sebagai program, kita harus mengubah izin ini.

  • Perhatikan bahwa kita juga harus mengubah izin direktori yang dapat dieksekusi ini. Hanya jika keduanya, file dan bit yang dapat dieksekusi direktori ditetapkan kami akan diizinkan menjalankan file ini sebagai program.

  • Saat menyalin file ke rumah kami, itu akan kehilangan izin yang akan digantikan oleh izin default kami sendiri (kecuali jika kami menyalin menggunakan opsi lanjutan misalnya opsi arsip).

  • Juga perhatikan bahwa file dapat mewarisi izin mereka dari titik mount mereka, resp. opsi pemasangan. Ini penting ketika memasang drive berformat Windows yang tidak mendukung izin Unix.

Pengguna dan Grup

Kami segera menyadari bahwa ini hanya setengah dari cerita. Kita juga perlu memilah barang-barang. Untuk melakukan ini, setiap file atau folder memiliki pemilik yang ditentukan, dan keanggotaan grup yang ditentukan.

Setiap kali kita membuat file, kita akan menjadi pemilik file, dan grup file itu juga akan menjadi kita. Dengan ls -l kita dapat melihat izin, kepemilikan, dan grup seperti yang terlihat dari contoh output berikut:

-rw-rw-r--  1 takkat takkat    4096 Sep 12 20:25 test
  • Kami hanya diizinkan untuk mengubah izin, grup, atau kepemilikan file yang menjadi milik kami.

Jika kita bukan pemilik file, kita akan mendapatkan kesalahan Permission denied. Hanya root yang dapat mengubah ini untuk semua file. Inilah sebabnya kita harus menggunakan Sudosaat mengedit izin file yang bukan milik kita. Ada dua perintah bawaan untuk melakukannya chownNAME _ untuk pengguna dan chgrpNAME _ untuk grup.

Untuk mengubah kepemilikan file dari siapa pun menjadi takkatkami dapat mengeluarkan perintah ini:

Sudo chown takkat testfile

Untuk mengubah grup file menjadi takkatkami mengeluarkan

Sudo chgrp takkat testfile

Baca halaman manual dari perintah untuk lebih detail dan opsi. Ada juga panduan Nice yang lebih rumit ini direkomendasikan untuk dibaca lebih lanjut:

Temukan juga beberapa pertanyaan terkait di sini:

31
Takkat