Cara Menggunakan Perintah chmod di Linux

Kawal siapa yang dapat mengakses fail, mencari direktori, dan menjalankan skrip menggunakan perintah Linux chmod. Perintah ini mengubah kebenaran fail Linux, yang kelihatan rumit pada pandangan pertama tetapi sebenarnya cukup mudah setelah anda mengetahui cara kerjanya.

chmod Mengubah Kebenaran Fail

Di Linux, siapa yang dapat melakukan apa yang file atau direktori dikendalikan melalui set izin. Terdapat tiga set kebenaran. Satu set untuk pemilik fail, satu lagi untuk ahli kumpulan fail, dan satu set terakhir untuk orang lain.

Kebenaran mengawal tindakan yang dapat dilakukan pada file atau direktori. Mereka membenarkan, atau mencegah, file dibaca, dimodifikasi atau, jika skrip atau program, dijalankan. Untuk direktori, izin menentukan siapa yang dapat cdmasuk ke dalam direktori dan siapa yang dapat membuat, atau mengubah fail dalam direktori.

Anda menggunakan  chmod arahan untuk menetapkan setiap kebenaran ini. Untuk melihat izin apa yang telah ditetapkan pada file atau direktori, kita dapat menggunakan ls.

Melihat dan Memahami Kebenaran Fail

Kita boleh menggunakan pilihan -l(format panjang) untuk lsmenyenaraikan kebenaran fail untuk fail dan direktori.

ls -l

Pada setiap baris, watak pertama mengenal pasti jenis entri yang disenaraikan. Sekiranya tanda hubung ( -) ia adalah fail. Sekiranya huruf d itu adalah direktori.

Sembilan watak seterusnya mewakili tetapan untuk tiga set kebenaran.

  • Tiga watak pertama menunjukkan kebenaran untuk pengguna yang memiliki fail ( izin pengguna ).
  • Tiga watak pertengahan menunjukkan kebenaran untuk anggota kumpulan fail ( kebenaran kumpulan ).
  • Tiga watak terakhir menunjukkan kebenaran bagi sesiapa sahaja yang tidak berada dalam dua kategori pertama ( kebenaran lain ).

Terdapat tiga watak dalam setiap set kebenaran. Karakter adalah petunjuk untuk kehadiran atau ketiadaan salah satu kebenaran. Mereka adalah tanda hubung ( -) atau huruf. Sekiranya watak itu adalah tanda hubung, ini bermaksud bahawa kebenaran tidak diberikan. Jika watak adalah r, w, atau x, kebenaran yang telah diberikan.

Huruf tersebut mewakili:

  • r : Kebenaran membaca. Fail boleh dibuka, dan kandungannya dilihat.
  • w : Kebenaran menulis. Fail boleh diedit, diubah, dan dihapus.
  • x : Jalankan kebenaran. Sekiranya file tersebut adalah skrip atau program, file tersebut dapat dijalankan (dieksekusi).

Sebagai contoh:

  •  --- bermaksud tidak ada kebenaran yang diberikan sama sekali.
  •  rwxbermaksud kebenaran penuh telah diberikan. Petunjuk baca, tulis, dan laksanakan semuanya ada.

Dalam tangkapan skrin kami, baris pertama bermula dengan a d. Garis ini merujuk kepada direktori yang disebut "arkib." Pemilik direktori adalah "dave," dan nama kumpulan tempat direktori tersebut disebut juga "dave."

Tiga watak seterusnya adalah kebenaran pengguna untuk direktori ini. Ini menunjukkan bahawa pemiliknya mempunyai kebenaran penuh. Semua r, wdan xwatak ada. Ini bermaksud pengguna telah membaca, menulis dan melaksanakan kebenaran untuk direktori tersebut.

Kumpulan kedua dari tiga watak adalah kebenaran kumpulan, ini adalah r-x. Ini menunjukkan bahawa ahli kumpulan dave telah membaca dan melaksanakan kebenaran untuk direktori ini. Itu berarti mereka dapat menyenaraikan file dan isinya dalam direktori, dan mereka dapat cd(melaksanakan) ke dalam direktori tersebut. Mereka tidak memiliki izin menulis, jadi mereka tidak dapat membuat, mengedit, atau menghapus fail.

Kumpulan akhir tiga watak juga  r-x. Kebenaran ini berlaku untuk orang yang tidak diatur oleh dua set kebenaran pertama. Orang-orang ini (disebut "orang lain") telah membaca dan melaksanakan kebenaran di direktori ini.

Jadi, untuk meringkaskan, ahli kumpulan dan yang lain telah membaca dan melaksanakan kebenaran. Pemiliknya, pengguna yang disebut dave, juga mempunyai izin menulis.

Untuk semua fail lain (selain dari fail skrip mh.sh) dave dan ahli kumpulan dave telah membaca dan menulis sifat pada fail tersebut, dan yang lain hanya mempunyai izin membaca.

Untuk kes khas fail skrip mh.sh, pemilik dave dan ahli kumpulan telah membaca, menulis, dan melaksanakan kebenaran, dan yang lain hanya membaca dan melaksanakan kebenaran.

Memahami Sintaksis Kebenaran

Untuk menggunakan chmod untuk menetapkan izin, kita harus memberitahunya:

  • Siapa: Untuk  siapa kami menetapkan kebenaran.
  • Apa : Apa perubahan yang kita buat? Adakah kita menambah atau membuang kebenaran?
  • Yang mana : Kebenaran mana yang kita tetapkan?

Kami menggunakan indikator untuk mewakili nilai-nilai ini, dan membentuk "pernyataan kebenaran" pendek seperti u+x, di mana "u" bermaksud "pengguna" (siapa), "+" bermaksud menambah (apa), dan "x" bermaksud izin pelaksanaan (yang) .

Nilai "siapa" yang dapat kita gunakan adalah:

  • u : Pengguna, bermaksud pemilik fail.
  • g : Kumpulan, yang bermaksud ahli kumpulan yang menjadi milik fail.
  • o : Lain-lain, yang bermaksud orang yang tidak diatur oleh udan gizin.
  • a : Semua, bermaksud semua perkara di atas.

Jika tidak ada yang digunakan, chmodberperilaku seolah-olah " a" telah digunakan.

Nilai "apa" yang dapat kita gunakan adalah:

  • - : Tanda tolak. Mengeluarkan kebenaran.
  • + : Tanda tambah. Memberi kebenaran. Kebenaran ditambahkan ke kebenaran yang ada. Sekiranya anda ingin mempunyai kebenaran ini dan hanya set kebenaran ini, gunakan =pilihan yang dijelaskan di bawah.
  • = : Tanda sama. Tetapkan kebenaran dan alih keluar orang lain.

Nilai "mana" yang dapat kita gunakan adalah:

  • r : Kebenaran membaca.
  • w : Kebenaran menulis.
  • x : Kebenaran melaksanakan.

Menetapkan Dan Mengubah Kebenaran

Katakan kita mempunyai fail di mana setiap orang mempunyai kebenaran penuh di atasnya.

ls -l new_ file.txt

Kami mahu pengguna mempunyai kebenaran membaca dan menulis dan kumpulan dan pengguna lain hanya mempunyai kebenaran membaca. Kita boleh menggunakan perintah berikut:

chmod u = rw, og = r new_file.txt

Menggunakan operator "=" bermaksud kita menghapus kebenaran yang ada dan kemudian menetapkan yang ditentukan.

mari kita periksa kebenaran baru pada fail ini:

ls -l new_file.txt

Izin yang ada telah dihapus, dan izin baru telah ditetapkan, seperti yang kami harapkan.

Bagaimana dengan menambah izin tanpa membuang tetapan kebenaran yang ada? Kita juga boleh melakukannya.

Katakanlah kita mempunyai fail skrip yang telah selesai kita edit. Kita perlu menjadikannya dapat dilaksanakan untuk semua pengguna. Kebenaran semasa seperti ini:

ls -l new_script.sh

Kami dapat menambahkan izin pelaksanaan untuk semua orang dengan perintah berikut:

chmod a + x new_script.sh

Jika kita melihat izinnya, kita akan melihat bahawa izin pelaksanaan sekarang diberikan kepada semua orang, dan izin yang ada masih ada.

ls -l new_script.sh

Kita boleh mencapai hal yang sama tanpa “a” dalam pernyataan “a + x”. Perintah berikut akan berfungsi juga.

chmod + x new_script.sh

Menetapkan Kebenaran untuk Berbilang Fail

Kami dapat mengizinkan kebenaran untuk beberapa fail sekaligus.

Ini adalah fail dalam direktori semasa:

ls -l

Katakanlah kita mahu mengeluarkan kebenaran menulis untuk pengguna "lain" dari fail yang mempunyai pelanjutan ".page". Kita boleh melakukan ini dengan arahan berikut:

chmod atau * .page

Mari kita periksa apa kesannya:

ls -l

Seperti yang kita lihat, izin baca telah dikeluarkan dari fail ".page" untuk kategori pengguna "lain". Tidak ada fail lain yang terjejas.

Sekiranya kita ingin memasukkan fail dalam subdirektori, kita boleh menggunakan pilihan -R(rekursif).

chmod -R atau * .page

Ringkas Berangka

Cara lain untuk digunakan chmodadalah dengan memberikan izin yang ingin anda berikan kepada pemilik, kumpulan, dan lain-lain sebagai nombor tiga digit. Digit paling kiri menunjukkan kebenaran untuk pemiliknya. Digit tengah mewakili kebenaran untuk ahli kumpulan. Digit paling kanan menunjukkan kebenaran untuk yang lain.

Digit yang boleh anda gunakan dan apa yang diwakilinya disenaraikan di sini:

  • 0: (000) Tiada kebenaran.
  • 1: (001) Jalankan kebenaran.
  • 2: (010) Kebenaran menulis.
  • 3: (011) Tulis dan laksanakan kebenaran.
  • 4: (100) Kebenaran membaca.
  • 5: (101) Baca dan laksanakan kebenaran.
  • 6: (110) Kebenaran membaca dan menulis.
  • 7: (111) Baca, tulis, dan laksanakan kebenaran.

Setiap tiga kebenaran diwakili oleh salah satu bit dalam setara binari nombor perpuluhan. Jadi 5, yang 101 dalam binari, bermaksud membaca dan melaksanakan. 2, yang 010 dalam binari, bermaksud izin menulis.

Dengan menggunakan kaedah ini, anda menetapkan kebenaran yang anda inginkan; anda tidak menambahkan kebenaran ini ke kebenaran yang ada. Oleh itu, jika kebenaran membaca dan menulis sudah ada, anda harus menggunakan 7 (111) untuk menambahkan kebenaran pelaksanaan. Menggunakan 1 (001) akan menghapus izin membaca dan menulis dan menambahkan izin pelaksanaan.

Mari tambahkan kebenaran membaca kembali pada fail ".page" untuk kategori pengguna yang lain. Kita juga mesti menetapkan izin pengguna dan kumpulan, jadi kita perlu menetapkannya kepada yang sudah ada. Pengguna ini sudah mempunyai kebenaran membaca dan menulis, iaitu 6 (110). Kami ingin "yang lain" membaca dan izin, jadi mereka harus ditetapkan ke 4 (100).

Perintah berikut akan melaksanakannya:

chmod 664 *. halaman

Ini menetapkan kebenaran yang kami perlukan untuk pengguna, ahli kumpulan, dan lain-lain dengan yang kami perlukan. Pengguna dan ahli kumpulan menetapkan kebenarannya semula kepada yang sudah ada, dan yang lain mendapat kebenaran membaca semula.

ls -l

Pilihan Lanjutan

Sekiranya anda membaca halaman man untuk chmodanda akan melihat ada beberapa pilihan lanjutan yang berkaitan dengan bit SETUID dan SETGID, dan dengan penghapusan terhad atau bit "melekit".

Untuk 99% kes yang anda perlukan chmod, pilihan yang dijelaskan di sini akan membuat anda dilindungi.