Kebenaran dan hak dalam Linux

Berapa banyak dari kita yang perlu "membatasi akses" ke file-file yang terdapat dalam direktori / folder tertentu atau kita hanya perlu mencegah beberapa orang melihat, menghapus atau mengubah isi file tertentu? Lebih daripada satu, bukan? Bolehkah kita mencapainya dalam penguin yang kita sayangi? Jawapannya ialah: Sudah tentu YA : D.

pengenalan

Sebilangan besar dari kita yang berasal dari Windows, terbiasa menangani "masalah" ini dengan cara yang sangat berbeza, untuk mencapai objektif ini kita harus menggunakan "teknik" yang tidak ortodoks, seperti menyembunyikan fail melalui atributnya, memindahkan maklumat ke tempat paling jauh dari pasukan kami (dalam 20,000 folder) untuk cuba menghalang XD "musuh" kami, mengubah atau menghapuskan peluasan fail, atau amalan yang paling "biasa", muat turun program yang membolehkan kami " tutup ”direktori kami di belakang kotak dialog yang bagus yang meminta kata laluan untuk mengaksesnya. Kami mempunyai alternatif yang jauh lebih baik? Tidak.

btrfs
artikel berkaitan:
Cara memasang HDD atau partition melalui terminal

Saya sangat menyesal untuk rakan-rakan "Windoleros" saya (saya mengatakannya dengan penuh kasih sayang sehingga tidak ada yang tersinggung, ok ?;)), Tetapi hari ini saya harus mengajar diri saya sedikit dengan Windows: P, kerana saya akan menerangkan mengapa OS ini tidak membenarkan asli fungsi ini.

Berapa banyak daripada anda yang menyedari bahawa ketika kita berada di belakang komputer "Windows" (walaupun bukan milik kita) kita secara automatik menjadi pemilik semua yang terdapat di dalam komputer (gambar, dokumen, program, dll.)? Apa maksud saya? Baiklah, dengan mengambil "kawalan Windows", kita dapat menyalin, memindahkan, menghapus, membuat, membuka atau mengubah folder dan fail ke kiri dan kanan, tidak kira sama ada kita "pemilik" maklumat ini atau tidak. Ini mencerminkan kelemahan keselamatan utama dalam sistem operasi, bukan? Ini semua kerana sistem operasi Microsoft tidak dirancang dari awal hingga menjadi pengguna pelbagai. Apabila versi MS-DOS dan beberapa versi Windows dilepaskan, mereka sepenuhnya mempercayai bahawa pengguna akhir akan bertanggungjawab untuk "menjaga" komputer masing-masing sehingga tidak ada pengguna lain yang dapat mengakses maklumat yang tersimpan di dalamnya ... naif ¬ ¬. Kini rakan WinUsers, anda sudah tahu mengapa ada "misteri" ini: D.

Sebaliknya, GNU / Linux, sebagai sistem yang dirancang secara mendasar untuk rangkaian, keselamatan maklumat yang kami simpan di komputer kami (belum lagi di pelayan) sangat penting, kerana banyak pengguna akan memiliki atau mungkin memiliki akses ke sebahagian daripada sumber perisian (kedua-dua aplikasi dan maklumat) dan perkakasan yang diuruskan pada komputer ini.

Sekarang kita dapat melihat mengapa perlunya sistem izin? Mari masuk ke topik;).

artikel berkaitan:
DU: bagaimana melihat 10 direktori yang menggunakan ruang paling banyak

Di GNU / Linux, izin atau hak yang dapat dimiliki pengguna terhadap fail tertentu yang terkandung di dalamnya ditetapkan dalam tiga tahap yang dibezakan dengan jelas. Ketiga-tiga tahap ini adalah seperti berikut:

Permit Pemilik.
Kebenaran kumpulan.
Kebenaran pengguna selebihnya (atau juga disebut "yang lain").

Untuk menjadi jelas mengenai konsep-konsep ini, dalam sistem rangkaian (seperti penguin) selalu ada sosok pentadbir, superuser atau root. Pentadbir ini bertanggungjawab untuk membuat dan membuang pengguna, serta menetapkan hak istimewa yang akan dimiliki oleh setiap mereka dalam sistem. Keistimewaan ini ditetapkan baik untuk direktori HOME setiap pengguna dan untuk direktori dan fail yang ditentukan oleh pentadbir yang boleh diakses oleh pengguna.

Kebenaran pemilik

Pemiliknya adalah pengguna yang menghasilkan atau membuat file / folder di dalam direktori kerja mereka (HOME), atau di beberapa direktori lain di mana mereka mempunyai hak. Setiap pengguna memiliki kekuatan untuk membuat, secara default, file yang mereka inginkan dalam direktori kerja mereka. Pada prinsipnya, hanya dia dan satu-satunya orang yang dapat mengakses maklumat yang terdapat dalam fail dan direktori yang ada di dalam direktori RUMAH anda.

Kebenaran kumpulan

Perkara yang paling biasa ialah setiap pengguna tergolong dalam kumpulan kerja. Dengan cara ini, apabila kumpulan dikendalikan, semua pengguna yang menjadi miliknya diuruskan. Dengan kata lain, lebih mudah untuk mengintegrasikan beberapa pengguna ke dalam kumpulan yang hak istimewa diberikan dalam sistem, daripada memberikan hak istimewa secara bebas kepada setiap pengguna.

Kebenaran pengguna selebihnya

Akhirnya, keistimewaan fail yang terdapat dalam direktori mana pun juga dapat dimiliki oleh pengguna lain yang tidak tergolong dalam kumpulan kerja di mana fail tersebut disatukan. Dengan kata lain, pengguna yang tidak tergolong dalam kumpulan kerja di mana fail berada, tetapi yang termasuk dalam kumpulan kerja lain, disebut pengguna sistem lain.

Sangat bagus, tetapi bagaimana saya dapat mengenal pasti semua ini? Ringkas, buka terminal dan lakukan perkara berikut:

$ ls -l

Nota: Ia adalah huruf kecil “L” 

Nampaknya seperti berikut:

Seperti yang anda lihat, perintah ini memaparkan atau "menyenaraikan" kandungan RUMAH saya, yang kita hadapi adalah garis merah dan hijau. Kotak merah menunjukkan kepada kita siapa pemiliknya dan kotak hijau menunjukkan kumpulan mana setiap fail dan folder yang disenaraikan di atas tergolong. Dalam kes ini, pemilik dan kumpulan disebut "Perseus", tetapi mereka mungkin pernah bertemu dengan kumpulan yang lain seperti "penjualan". Untuk selebihnya, jangan risau buat masa ini, kita akan lihat kemudian: D.

Jenis kebenaran dalam GNU / Linux

Sebelum mengetahui cara menetapkan izin di GNU / Linux, kita harus mengetahui bagaimana jenis fail yang dapat dimiliki oleh sistem dapat dibezakan.

Setiap fail di GNU / Linux dikenal pasti oleh 10 aksara, yang dipanggil topeng. Dari 10 aksara ini, yang pertama (dari kiri ke kanan) merujuk kepada jenis fail. 9 berikut, dari kiri ke kanan dan di blok 3, merujuk kepada izin yang diberikan, masing-masing, kepada pemilik, kumpulan dan yang lain atau yang lain. Tangkapan skrin untuk menunjukkan semua perkara ini:

Karakter pertama fail boleh menjadi berikut:

Maafkan saya Kenal pasti
- arkib
d Direktori
b Fail Sekatan Khas (Fail Khas Peranti)
c Fail watak khas (peranti, pencetak ...)
l Pautan fail atau pautan (pautan lembut / simbolik)
p Fail khas saluran (paip atau paip)

Sembilan watak seterusnya adalah kebenaran yang diberikan kepada pengguna sistem. Setiap tiga watak, pemilik, kumpulan, dan izin pengguna lain dirujuk.

Karakter yang menentukan kebenaran ini adalah berikut:

Maafkan saya Kenal pasti
- Tanpa kebenaran
r Baca kebenaran
w Tulis kebenaran
x Kebenaran pelaksanaan

Kebenaran fail

Membaca: pada dasarnya membolehkan anda melihat kandungan fail.
Tulis: membolehkan anda mengubah kandungan fail.
Pelaksanaan: membolehkan fail dijalankan seolah-olah itu adalah program yang dapat dilaksanakan.

Kebenaran direktori

Baca: Ini memungkinkan untuk mengetahui fail dan direktori apa yang terkandung dalam kebenaran ini.
Tulis: membolehkan anda membuat fail dalam direktori, sama ada fail biasa atau direktori baru. Direktori boleh dihapus, fail disalin ke direktori, dipindahkan, dinamakan semula, dll.
Pelaksanaan: membolehkan anda memeriksa direktori untuk dapat memeriksa kandungannya, menyalin fail dari atau ke dalamnya. Sekiranya anda juga mempunyai kebenaran membaca dan menulis, anda boleh melakukan semua kemungkinan operasi pada fail dan direktori.

Nota: Sekiranya anda tidak mempunyai izin pelaksanaan, kami tidak akan dapat mengakses direktori tersebut (walaupun kami menggunakan perintah "cd"), kerana tindakan ini akan ditolak. Ini juga memungkinkan pembatasan penggunaan direktori sebagai bagian dari jalur (seperti ketika kita melewati jalur file yang terdapat di direktori itu sebagai rujukan. Misalkan kita ingin menyalin file "X.ogg" yang ada di folder " / home / perseo / Z "-untuk folder" Z "tidak memiliki izin pelaksanaan-, kami akan melakukan yang berikut:

$ cp /home/perseo/Z/X.ogg /home/perseo/Y/

mendapatkan dengan ini ralat yang memberitahu kami bahawa kami tidak mempunyai kebenaran yang mencukupi untuk mengakses fail: D). Sekiranya kebenaran pelaksanaan direktori dinonaktifkan, anda akan dapat melihat isinya (jika anda mempunyai izin membaca), tetapi anda tidak akan dapat mengakses salah satu objek yang terdapat di dalamnya, kerana direktori ini adalah bahagian dari jalan yang diperlukan untuk menyelesaikan lokasi objek anda.

Pengurusan kebenaran dalam GNU / Linux

Sejauh ini, kami telah melihat kebenaran untuk GNU / Linux, di bawah ini kami akan melihat cara menetapkan atau mengurangkan kebenaran atau hak.

Sebelum memulakan, kita harus ingat bahawa apabila kita mendaftar atau membuat pengguna dalam sistem, kita secara automatik memberikan mereka hak istimewa. Keistimewaan ini, tentu saja, tidak akan total, iaitu pengguna biasanya tidak akan mempunyai izin dan hak pengguna yang sama. Semasa pengguna dibuat, sistem menghasilkan secara lalai hak pengguna untuk pengurusan fail dan pengurusan direktori. Jelas, ini dapat diubah suai oleh pentadbir, tetapi sistem menghasilkan hak yang kurang lebih sah untuk kebanyakan operasi yang akan dilakukan oleh setiap pengguna di direktori mereka, fail mereka dan pada direktori dan fail pengguna lain. Ini adalah kebenaran berikut:

<° Untuk fail: - rw-r-- r--
<° Untuk direktori: - rwx rwx rwx

Nota: mereka bukan kebenaran yang sama untuk semua pengedaran GNU / Linux.

Keistimewaan ini membolehkan kami membuat, menyalin dan memadam fail, membuat direktori baru, dll. Mari kita lihat semua ini dalam praktik: D:

Mari kita ambil fail "Advanced CSS.pdf" sebagai contoh. Mari kita perhatikan bahawa ia muncul seperti berikut: -rw-r--r-- ... CSS.pdf lanjutan. Mari kita perhatikan lebih dekat.

Jenis pengguna Kumpulan Pengguna selebihnya (yang lain) Nama fail
- rw- r-- r-- CSS lanjutan.pdf

Ini bermakna:

<° Jenis: arkib
<° Pengguna boleh: Baca (lihat kandungan) dan tulis (ubah suai) failnya.
<° Kumpulan yang menjadi milik pengguna boleh: Baca (sahaja) fail.
<° Pengguna lain boleh: Baca (sahaja) fail.

Bagi mereka yang ingin tahu yang ingin tahu apa bidang rujukan lain yang diperoleh oleh ls -l, berikut adalah jawapannya:

Sekiranya anda ingin mengetahui lebih lanjut mengenai pautan keras dan lembut / simbolik, berikut adalah penjelasan dan tautannya perbezaan.

Kawan-kawan, kita sampai pada bahagian yang paling menarik dan berat dari topik yang dipersoalkan ...

Penyerahan kebenaran

Perintah itu Chmod ("Mod Ubah") memungkinkan pengubahsuaian topeng sehingga operasi lebih kurang dapat dilakukan pada fail atau direktori, dengan kata lain, dengan chmod anda dapat menghapus atau menghapus hak untuk setiap jenis pengguna. Sekiranya jenis pengguna yang ingin kita hapus, tetapkan atau berikan hak istimewa tidak ditentukan, apa yang akan berlaku ketika melakukan operasi adalah mempengaruhi semua pengguna secara serentak.

Perkara asas yang perlu diingat ialah kita memberi atau membuang kebenaran pada tahap ini:

Parameter Nivel Huraian
u pemilik pemilik fail atau direktori
g kumpulan kumpulan yang menjadi milik fail
o lain semua pengguna lain yang bukan pemilik atau kumpulan

Jenis kebenaran:

Maafkan saya Kenal pasti
r Baca kebenaran
w Tulis kebenaran
x Kebenaran pelaksanaan

 Beri kebenaran pemilik untuk melaksanakan:

$ chmod u+x komodo.sh

Keluarkan izin pelaksanaan dari semua pengguna:

$ chmod -x komodo.sh

Beri kebenaran membaca dan menulis kepada pengguna lain:

$ chmod o+r+w komodo.sh

Biarkan hanya kebenaran membaca kepada kumpulan tempat fail tersebut:

$ chmod g+r-w-x komodo.sh

Kebenaran dalam format angka oktal

Ada cara lain untuk menggunakan perintah chmod yang, bagi banyak pengguna, adalah "lebih selesa", walaupun secara apriori agak rumit untuk difahami ¬.

Kombinasi nilai setiap kumpulan pengguna membentuk nombor oktal, bit "x" adalah 20 yang 1, bit bit adalah 21 yang 2, bit r adalah 22 yang 4, kita kemudian:

r = 4
w = 2
x = 1

Gabungan bit aktif atau mati dalam setiap kumpulan memberikan lapan kemungkinan kombinasi nilai, iaitu jumlah bit pada:

Maafkan saya Nilai Oktal Huraian
- - - 0 anda tidak mempunyai kebenaran
- - x 1 melaksanakan kebenaran sahaja
- w - 2 kebenaran menulis sahaja
- wx 3 menulis dan melaksanakan kebenaran
r - - 4 kebenaran membaca sahaja
r - x 5 membaca dan melaksanakan kebenaran
rw - 6 kebenaran membaca dan menulis
rwx 7 semua kebenaran menetapkan, membaca, menulis dan melaksanakan

Apabila anda menggabungkan kebenaran pengguna, kumpulan, dan lain-lain, anda mendapat nombor tiga digit yang membentuk kebenaran fail atau direktori. Contoh:

Maafkan saya Valor Huraian
rw- --- -- 600 Pemiliknya mempunyai kebenaran membaca dan menulis
rwx --x --x 711 Pemilik membaca, menulis dan melaksanakan, kumpulan dan yang lain hanya melaksanakan
rwx rx rx 755 Pemilik, kumpulan dan yang lain yang membaca, menulis dan melaksanakannya dapat membaca dan melaksanakan fail tersebut
rwx rwx rwx 777 Fail boleh dibaca, ditulis dan dilaksanakan oleh sesiapa sahaja
r-- --- -- 400 Hanya pemilik yang dapat membaca fail tersebut, tetapi tidak ada yang dapat mengubah atau melaksanakannya dan tentu saja kumpulan atau yang lain tidak dapat melakukan apa-apa di dalamnya.
rw-r-- --- 640 Pengguna pemilik boleh membaca dan menulis, kumpulan dapat membaca fail, dan yang lain tidak dapat berbuat apa-apa

Kebenaran khas

Masih ada jenis izin lain yang perlu dipertimbangkan. Ini adalah bit kebenaran SUID (Tetapkan ID Pengguna), bit kebenaran SGID (Set Kumpulan ID) dan bit melekit (bit kebenaran ketekunan).

tetapkan masa

Setuid bit dapat ditugaskan ke file yang dapat dieksekusi, dan memungkinkan apabila pengguna menjalankan file tersebut, prosesnya memperoleh izin pemilik file yang dieksekusi. Contoh paling jelas dari fail yang boleh dilaksanakan dengan bit setuid adalah:

$ su

Kita dapat melihat bahawa bit ditetapkan sebagai "s" dalam tangkapan berikut:

Untuk menetapkan bit ini ke fail adalah:

$ chmod u+s /bin/su

Dan untuk membuangnya:

$ chmod u-s /bin/su

Nota: Kita mesti menggunakan bit ini dengan sangat berhati-hati kerana ia boleh menyebabkan peningkatan hak istimewa dalam sistem kita ¬.

setgid

Setid bit memungkinkan untuk memperoleh keistimewaan kumpulan yang diberikan kepada fail, ia juga boleh diberikan kepada direktori. Ini akan sangat berguna apabila beberapa pengguna kumpulan yang sama perlu bekerja dengan sumber dalam direktori yang sama.

Untuk menetapkan bit ini, kami melakukan perkara berikut:

$ chmod g+s /carpeta_compartida

Dan untuk membuangnya:

$ chmod g-s /carpeta_compartida

melekit

Bit ini biasanya ditugaskan dalam direktori yang dapat diakses oleh semua pengguna, dan ini memungkinkan untuk mengelakkan pengguna daripada menghapus fail / direktori pengguna lain dalam direktori tersebut, kerana semua mempunyai izin menulis.
Kita dapat melihat bahawa bit ditetapkan sebagai "t" dalam tangkapan berikut:

Untuk menetapkan bit ini, kami melakukan perkara berikut:

$ chmod o+t /tmp

Dan untuk membuangnya:

$ chmod o-t /tmp

Sahabat, sekarang anda tahu bagaimana melindungi maklumat anda dengan lebih baik, dengan ini saya harap anda berhenti mencari alternatif untuk Folder Lock o Penjaga Folder bahawa di GNU / Linux kita sama sekali tidak memerlukannya.

P.S: Artikel khusus ini diminta oleh jiran sepupu rakan XD, saya harap saya telah menjawab soalan anda... 