Berbagi teknologi

Analisis mendalam tentang izin Linux - mengeksplorasi prinsip-prinsip

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Kata Pengantar: Bagian ini terutama membahas tentang konten yang terkait dengan izin Linux. Izin Linux tidak dapat dirasakan jika Anda menggunakan akun root, jadi kita perlu menggunakan akun biasa untuk mempelajari konten yang relevan dari bagian ini dan melakukan beberapa pengujian eksperimental. Kemudian, melalui mempelajari izin Linux, kita dapat mengetahui mengapa terkadang kita selalu mendapatkan izin saat mengoperasikan suatu berkas, dan memberi tahu kita perbedaan antara izin berkas di direktori akar dan izin berkas di direktori home pengguna biasa.

ps: Bagian ini cocok untuk teman-teman yang sedang belajar Linux dan mengetahui beberapa perintah Linux.

Klasifikasi pengguna

//Pertama, mari kita kenali klasifikasi pengguna di Linux:

  • akar:pengguna super, administrator
  • pengguna umum: Artinya, beberapa pengguna yang kami buat. (Pengguna biasa dari addusr)

Perbedaan mendasar antara kedua pengguna ini adalah pengguna root tidak dibatasi izinnya, sedangkan pengguna biasa dibatasi izinnya.

//kamu

Pengguna biasa dapat beralih ke pengguna root, dan pengguna root juga dapat beralih ke pengguna biasa.

Beralih dari pengguna biasa ke pengguna root:

Yang pertama - su + kata sandi root. Anda dapat beralih menjadi pengguna root. Jika Anda beralih saat ini, posisi pengguna tidak akan berubah setelah peralihan.

Tipe kedua - su- + kata sandi root. Juga beralih ke pengguna root. Jika Anda beralih saat ini, lokasi pengguna setelah peralihan akan menjadi direktori home root sendiri.

Setelah beralih dalam dua situasi di atas, Anda dapat menggunakan cral + d untuk beralih kembali.

Mengalihkan pengguna root ke pengguna normal - Mengalihkan pengguna root ke pengguna normal tidak memerlukan kata sandi dan dapat dialihkan secara langsung.

Pengguna biasa beralih ke pengguna biasa

Umumnya ada dua cara bagi pengguna biasa untuk beralih menjadi pengguna biasa:

Yang pertama - jika Anda memiliki kata sandi pengguna biasa, Anda dapat menggunakan su + pengguna + kata sandi pengguna untuk mengganti identitas.

Tipe kedua - pertama beralih ke pengguna root (lihat metode peralihan di atas), dan kemudian langsung beralih ke pengguna tertentu melalui identitas root.

Perhatikan bahwa Anda dapat menggunakan cral + d untuk beralih kembali ke peralihan identitas kesadaran.

Peningkatan hak istimewa perintah : Saat kami menjalankan perintah, kami tidak dapat beralih ke pengguna root, tetapi hanya meningkatkan hak istimewa salah satu perintah. Saat ini, kami menggunakan sudu + perintah + kata sandi pengguna saat ini. Teman-teman mungkin memiliki pertanyaan di sini, mengapa Anda harus memasukkan kata sandi Anda sendiri untuk meningkatkan hak istimewa perintah tertentu, bukan kata sandi root? Itu karena eskalasi hak istimewa perintah ini bersyarat, yaitu hanya ketika pengguna ditambahkan ke daftar putih sistem barulah eskalasi hak istimewa perintah dapat dilakukan. Jika tidak ditambahkan ke daftar putih, perintah eskalasi hak istimewa tidak ada gunanya.

Apa itu izin

Dalam bahasa sehari-hari, izin mengacu pada apakah Anda diperbolehkan melakukan sesuatu. Ini adalah izin.

Identitas seorang pengguna terbagi menjadi: pemilik, grup, dan lain-lain.

Mari kita lihat rangkaian baris perintah berikut:

Di sini, _mian_yang pertama awalnya mewakili pemilik file, dan _mian_yang kedua mewakili grup tempat file tersebut berada. Artinya, pemilik file-file ini adalah _mian_yang, dan _mian_yang adalah identitas pemiliknya; grup tempat file-file ini berada adalah _mian_yang. Jika pengguna termasuk dalam grup _mian_yang, maka dia adalah identitas grup tersebut yang mana dia berasal; dan jika pengguna keduanya Itu bukan _mian_yang, juga tidak termasuk dalam grup _mian_yang. Maka pengguna tersebut adalah identitas orang lain.

Jadi kalau ada kepala sekolah bernama Zhang San, Zhang San ingin pergi ke kantor kepala sekolahnya sendiri. Jadi saya ingin bertanya, apakah Zhang San dapat pergi ke kantor kepala sekolah karena dia adalah Zhang San, atau karena dia adalah kepala sekolah. Alasan yang jelas di sini adalah karena dia adalah kepala sekolah, dia dapat pergi ke kantor kepala sekolahnya sendiri. Jadi, untuk file kita, kita dapat mengakses file ini karena kita adalah pengguna ini? Atau karena identitas pengguna kita? Jawabannya adalah identitas. Artinya, otoritas otentikasi adalah identitas.

Pertanyaan kedua, kita semua tahu bahwa ponsel memiliki banyak fungsi. Kita bisa menonton video, mengecek informasi, bermain game dan lain sebagainya. Hal ini dapat dilihat sebagai atribut yang dimiliki oleh ponsel. Namun, saat kita lapar, kita tidak bisa memakan ponsel sehingga membuat kita tidak lapar lagi. Dapat dijadikan makanan merupakan suatu sifat yang tidak dimiliki oleh ponsel. Jadi apapun yang kita lakukan, bahkan orang dengan otoritas tertinggi pun tidak bisa membiarkan ponsel menjadi makanan, begitu. Poin kedua bisa kita ketahui, yaitu izin juga berkaitan dengan atribut suatu benda.

//Hubungan antara identitas dan pengguna

Setelah membahas ketiga jenis izin, mari kita perhatikan hubungan antara izin dan klasifikasi pengguna berdasarkan klasifikasi pengguna sebelumnya.

Pertama-tama, untuk pengguna biasa, pengguna biasa ini mungkin adalah pemilik file, grup tempat file tersebut berada, atau orang lain.

Untuk pengguna root, pengguna root dapat berupa pemilik file, grup tempat file tersebut berada, atau orang lain.

Jadi, bagaimana hal itu terwujud? Artinya, bagaimana Linux menentukan identitas pengguna ini? Mari kita lihat gambar ini:

Untuk kotak berwarna hijau dan oranye, kotak hijau adalah pemiliknya dan kotak oranye adalah grupnya. Jadi ketika ada pengguna yang masuk mengakses file, dia harus terlebih dahulu memeriksa apakah dia pemilik file tersebut. Jika bukan, dia harus memeriksa apakah dia adalah grup yang memiliki file tersebut. Jika tidak, maka orang lain.

//Izin berkas

Lihat terus gambar ini, Untuk gambar ini, kotak berwarna merah muda yang didalamnya merupakan izin dari identitas masing-masing. Bilah horizontal hijau adalah izin pemilik, bilah horizontal oranye adalah izin grup, dan bilah horizontal biru adalah izin orang lain. Diantaranya, setiap identitas memiliki tiga izin rwx. Ketiga izin ini adalah satu grup, dan posisi ketiga izin ini ditentukan. Posisi pertama untuk membaca, posisi kedua untuk menulis, dan posisi ketiga untuk eksekusi. Ketiga posisi ini tidak akan urut, dan arti dari setiap posisi ditentukan! Dan setiap lokasi hanya memiliki ya atau tidak, memiliki izin yang ditentukan.

Coba pikirkan di sini, mengapa Anda memerlukan izin untuk menjadi anggota grup?

Misalkan Zhang San dan Li Si masuk ke sebuah perusahaan untuk wawancara, dan akhirnya magang di perusahaan yang sama, dan kemudian ditugaskan ke Grup A dan Grup B. Apalagi Zhang San di Grup A dan Li Si di Grup B. Kini perusahaan mengizinkan kedua grup ini mengembangkan perangkat lunak secara bersamaan. Suatu hari Zhang San menulis sekumpulan kode yang sangat kuat. Li Si ingin melihatnya, tetapi Zhang San tidak ingin Li Si melihatnya. Namun, suatu hari pemimpinnya ingin melihat kode yang ditulis oleh Zhang San. Namun, jika Zhang San melepaskan izin membaca kode tersebut, maka Li Si dapat melihatnya, sehingga grup tempat dia berada berperan dalam hal ini. waktu. Biarlah pemimpin ini menjadi bagian dari kelompok ini, sehingga saya dapat melihat program ini, pemimpin juga dapat melihatnya, tetapi yang lain tidak.

Modifikasi izin

Hanya ada dua orang yang dapat mengubah izin, satu adalah pemilik dan yang lainnya adalah root.

Metode: chmod u + rwx ubah izin yang diubah oleh pemilik, dan tambahkan izin ke pemilik (r izin baca, w izin tulis, x izin eksekusi)

chmod u-rwx mengubah izin pemilik dan mengurangi izin terkait dari pemilik

chmod g+rwx mengubah izin grup miliknya, dan menambahkan izin ke grup miliknya.

chmod g-rwx mengubah izin grup miliknya, dan menambahkan izin ke grup tempatnya berada.

chmod g-rwx untuk mengubah izin orang lain, dan menambahkan izin kepada orang lain

chmod g-rwx untuk mengubah izin orang lain, dan menambahkan izin kepada orang lain

Anda juga dapat chmod u+rwx dan g+rwx untuk memberikan izin ke beberapa identitas. Ini berarti menambahkan izin ke grup dan pemilik tempat mereka berada, dan mengurangi izin adalah kebalikannya.

Misalnya, jika Anda ingin menambahkan izin ke semua identitas sekaligus, Anda akan melakukan chmod a+rwx, dan kebalikannya berlaku untuk mengurangi izin.

Selain itu, selain mengubah izin, kita juga dapat mengubah pemilik dan grup suatu file.

Ubah pemilik file: chown file pengguna untuk memberikan file miliknya kepada seseorang dan mengubah pemiliknya.

Ubah grup tempat file berada: chgrp Ubah grup tempat file pengguna berada.

Dua instruksi di atas memerlukan persetujuan dari pengguna terkait. Umumnya ada dua metode: satu adalah untuk meningkatkan hak, su, dan yang lainnya adalah berkomunikasi secara offline.

Sedangkan untuk izin, izin setiap lokasi yang kita lihat menggunakan ll ditentukan, jadi kita dapat menggunakan 1 untuk menyatakan bahwa lokasi tersebut memiliki izin, dan 0 untuk menyatakan bahwa lokasi tersebut tidak memiliki izin. Jadi kita bisa menggunakan 111 dan 110 untuk mewakili izin suatu identitas. Misalnya, 111 berarti membaca, menulis, dan mengeksekusi. 111 adalah 7, jadi tiga identitas dapat diwakili oleh tiga angka oktal, misalnya 777.

Oleh karena itu, kita dapat memodifikasi izin seperti ini - chmod 777, yang berarti memberikan semua izin kepada semua identitas.

Sekarang, mari kita lihat sebuah contoh:

Sekarang, untuk pengguna _mian_yang, status pemiliknya memiliki izin membaca tetapi tidak memiliki izin menulis; identitas grupnya memiliki izin membaca dan menulis.

Jadi saat ini, bisakah _mian_yang menulis ke file ini?

Jawabannya adalah tidak, karena ketika pengguna mengautentikasi identitasnya, dia hanya dapat mengautentikasi satu identitas. Pertama dia mengautentikasi pemiliknya, lalu dia mengautentikasi grup miliknya, dan terakhir dia mengautentikasi yang lain.

umask

Mengapa izinnya terlihat seperti ini saat kita membuat file?

Pertama-tama, yang perlu kita ketahui adalah bahwa izin dalam gambar adalah izin akhir yang dibuat oleh file tersebut. Mereka sebenarnya juga memiliki izin awal-izin awal default untuk file direktori adalah 777, dan default untuk file biasa adalah 666. Tetapi mengapa akhirnya dibuat izin 775 untuk file direktori dan 664 untuk file biasa?

Ini karena sistem memiliki umask secara default - topeng izin. Permission mask artinya setiap izin yang muncul di umask tidak akan muncul di izin akhir. Aturan penghitungan di sini bukan izin default - izin topeng, tetapi izin akhir = izin default & (~ izin topeng)

Pada saat yang sama, umask juga dapat dimodifikasi, seperti nomor umask, yaitu mengubah topeng izin ke nomor tertentu.

Arti membaca dan menulis direktori

Pembacaan direktori: memungkinkan kita melihat isi file di direktori saat ini

Penulisan direktori: memungkinkan kita membuat, menghapus, dan mengubah file

Direktori yang dapat dieksekusi: Apakah kita diperbolehkan masuk ke direktori tersebut.

sedikit lengket

Dalam praktiknya, kami mungkin memiliki persyaratan ini: kami ingin berbagi data, tetapi jika kami membuat direktori di bawah direktori home kami, pengguna lain tidak dapat masuk. Oleh karena itu, direktori ini hanya dapat dibuat di bawah direktori root, tetapi izin default dari direktori root adalah dr-xr-xr-x, yang berarti ketiga identitas tersebut hanya dapat membaca dan mengeksekusi, dan tidak dapat membuat direktori sesuka hati. Jadi, Anda perlu menggunakan akun root untuk membuat direktori.

Setelah membuat file ini, kita dapat mengatur identitas lain untuk membaca, menulis, dan mengeksekusi file ini, jika tidak, maka file tersebut tidak dapat dibagikan. Tetapi jika pengguna membuat file di dalamnya, karena direktori tersebut memiliki izin menulis, orang lain dapat menghapus file tersebut sesuka hati. Jadi untuk melindungi file ini saat ini, operasi bit lengket telah ditambahkan. Pengoperasian bit lengket ini memastikan bahwa file yang dibuat oleh pengguna hanya dapat dihapus oleh pengguna itu sendiri atau di-root.

Oleh karena itu, bit lengket adalah izin yang ditetapkan khusus untuk suatu direktori, biasanya direktori bersama. Setiap orang dapat menambah, menghapus, memeriksa, dan mengubah file dalam direktori, tetapi hanya pemilik dan root yang dapat menghapus file tersebut, dan tidak ada orang lain. Bisa.

------------------

Itu saja untuk bagian ini.

Berikut catatan saya: