GNU/Linux >> Belajar Linux >  >> Linux

Izin Linux:SUID, SGID, dan sticky bit

Izin Linux adalah konsep yang sangat akrab bagi setiap pengguna sejak awal perkembangannya. Kita perlu menjalankan skrip, memodifikasi file, dan menjalankan proses untuk mengelola sistem secara efektif, tetapi apa yang terjadi ketika kita melihat Izin ditolak ? Tahukah Anda mengapa kami melihat pesan ini? Jika Anda mengetahui penyebab masalahnya, apakah Anda tahu cara menerapkan solusinya?

Saya akan memberikan penjelasan singkat tentang berbagai cara untuk menghitung izin, dan kemudian kami akan fokus pada izin khusus di Linux. Jika Anda ingin melihat lebih dalam pada chmod perintah, lihat artikel ini dari Sudoer Shashank Hegde, izin Linux:Pengantar chmod.

TL;DR adalah bahwa ada dua cara utama untuk menetapkan izin.

Metode simbolik

Metode simbolis menggunakan sintaks berikut:

[tcarrigan@server ~]$ chmod WhoWhatWhich file | directory

Dimana:

  • Siapa - mewakili identitas:u,g,o,a (pengguna, grup, lainnya, semua)
  • Apa - mewakili tindakan:+, -, =(tambah, hapus, setel tepat)
  • Yang - mewakili tingkat akses:r, w, x (baca, tulis, jalankan)

Contohnya adalah jika saya ingin menambah baca dan tulis izin ke file bernama test.txt untuk pengguna dan grup , saya menggunakan perintah berikut:

[tcarrigan@server ~]$ chmod ug+rw test.txt

Pengungkapan penuh, ini bukan metode yang saya pilih untuk menetapkan izin, dan jika Anda menginginkan informasi lebih lanjut tentang metode ini, saya sarankan mesin telusur terdekat Anda.

Metode numerik

Metode numerik, menurut pengalaman saya, adalah cara terbaik untuk mempelajari dan mempraktikkan izin. Ini didasarkan pada sintaks berikut:

[tcarrigan@server ~]$ chmod ### file | directory

Di sini, dari kiri ke kanan, karakter # mewakili tingkat akses. Ada tiga tingkat akses—pengguna, grup, dan lainnya. Untuk menentukan masing-masing digit, kami menggunakan yang berikut:

  • Mulai dari 0
  • Jika membaca izin harus disetel, tambahkan 4
  • Jika tulis izin harus disetel, tambahkan 2
  • Jika dijalankan izin harus disetel, tambahkan 1

Ini dihitung berdasarkan tingkat akses per. Mari kita interpretasikan contoh izin ini:

-rw-r-x---

Izin direpresentasikan sebagai 650 . Bagaimana saya sampai pada angka-angka itu?

  • Izin pengguna adalah:rw- atau 4+2=6
  • Izin grup adalah:r-x atau 4+1=5
  • Izin lainnya adalah:--- atau 0

Untuk memasukkan ini ke dalam sintaks perintah, terlihat seperti ini:

[tcarrigan@server ~]$ chmod 650 test.txt

Sekarang setelah Anda memahami dasar-dasar penghitungan izin di Linux, mari kita lihat izin khusus disertakan dalam OS.

[ Anda mungkin juga menyukai: Pengantar Daftar Kontrol Akses Linux (ACL) ]

Izin khusus dijelaskan

Izin khusus membentuk tingkat akses keempat selain pengguna , grup , dan lainnya . Izin khusus memungkinkan hak istimewa tambahan di atas set izin standar (seperti namanya). Ada opsi izin khusus untuk setiap tingkat akses yang dibahas sebelumnya. Mari kita lihat satu per satu, dimulai dengan Set UID:

pengguna + s (khusus)

Biasanya dicatat sebagai SUID , izin khusus untuk tingkat akses pengguna memiliki satu fungsi:File dengan SUID selalu dijalankan sebagai pengguna yang memiliki file, terlepas dari pengguna yang meneruskan perintah. Jika pemilik file tidak memiliki izin eksekusi, gunakan huruf besar S di sini.

Sekarang, untuk melihat ini secara praktis, mari kita lihat /usr/bin/passwd memerintah. Perintah ini, secara default, memiliki izin SUID yang disetel:

[tcarrigan@server ~]$ ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 33544 Dec 13  2019 /usr/bin/passwd

Perhatikan s di mana x biasanya akan menunjukkan izin eksekusi untuk pengguna.

grup + s (khusus)

Biasanya dicatat sebagai SGID , izin khusus ini memiliki beberapa fungsi:

  • Jika disetel pada file, file tersebut dapat dieksekusi sebagai grup yang memiliki file tersebut (mirip dengan SUID)
  • Jika disetel pada direktori, semua file yang dibuat dalam direktori akan memiliki grup kepemilikan disetel ke pemilik direktori
[tcarrigan@server article_submissions]$ ls -l 
total 0
drwxrws---. 2 tcarrigan tcarrigan  69 Apr  7 11:31 my_articles

Kumpulan izin ini ditandai dengan huruf kecil s di mana x biasanya akan menunjukkan eksekusi hak istimewa untuk grup . Ini juga sangat berguna untuk direktori yang sering digunakan dalam upaya kolaboratif antara anggota grup. Setiap anggota grup dapat mengakses file baru apa pun. Ini juga berlaku untuk eksekusi file. SGID sangat kuat jika digunakan dengan benar.

Seperti disebutkan sebelumnya untuk SUID , jika grup pemilik tidak memiliki izin eksekusi, maka S . huruf besar digunakan.

lainnya + t (lengket)

Izin khusus terakhir telah dijuluki "sedikit lengket." Izin ini tidak memengaruhi file individual. Namun, pada tingkat direktori, ini membatasi penghapusan file. Hanya pemilik (dan akar ) dari sebuah file dapat menghapus file di dalam direktori tersebut. Contoh umum dari ini adalah /tmp direktori:

[tcarrigan@server article_submissions]$ ls -ld /tmp/
drwxrwxrwt. 15 root root 4096 Sep 22 15:28 /tmp/

Set izin ditandai dengan huruf kecil t , di mana x biasanya akan menunjukkan hak eksekusi.

Menyetel izin khusus

Untuk menyetel izin khusus pada file atau direktori, Anda dapat menggunakan salah satu dari dua metode yang diuraikan untuk izin standar di atas:Simbolik atau numerik.

Mari kita asumsikan bahwa kita ingin menyetel SGID pada direktori community_content .

Untuk melakukan ini menggunakan metode simbolis, kami melakukan hal berikut:

[tcarrigan@server article_submissions]$ chmod g+s community_content/

Dengan menggunakan metode numerik, kita harus melewatkan digit keempat sebelumnya di chmod memerintah. Digit yang digunakan dihitung mirip dengan digit izin standar:

  • Mulai dari 0
  • SUID =4
  • SGID =2
  • Melekat =1

Sintaksnya adalah:

[tcarrigan@server ~]$ chmod X### file | directory

Dimana adalah digit izin khusus.

Berikut adalah perintah untuk mengatur SGID di community_content menggunakan metode numerik:

[tcarrigan@server article_submissions]$ chmod 2770 community_content/
[tcarrigan@server article_submissions]$ ls -ld community_content/
drwxrws---. 2 tcarrigan tcarrigan 113 Apr  7 11:32 community_content/

[ Unduhan gratis:Lembar contekan perintah Linux tingkat lanjut. ] 

Ringkasan

Sebagai penutup, izin pada dasarnya penting untuk menjadi administrator Linux yang efektif. Ada dua cara yang ditentukan untuk menyetel izin menggunakan chmod perintah:Simbolik dan numerik. Kami memeriksa sintaks dan perhitungan yang diperlukan untuk kedua metode. Kami juga mempertimbangkan izin khusus dan perannya dalam sistem. Sekarang setelah Anda memahami izin dan konsep yang mendasarinya, Anda dapat mengatasi Izin ditolak yang selalu mengganggu kesalahan saat mencoba menghalangi pekerjaan Anda.


Linux
  1. Apa itu Sticky Bit, SUID dan SGID di Linux

  2. Linux – Jalankan Vs Baca Bit. Bagaimana Izin Direktori Di Linux Bekerja?

  3. Linux – Suid Tidak Berpengaruh Pada Direktori Dengan Linux?

  1. Lembar contekan untuk pengguna dan izin Linux

  2. Izin Linux 101

  3. Pertanyaan Wawancara Linux – Izin File dan Direktori Dasar

  1. Cara Menemukan File Dengan Izin SUID dan SGID di Linux

  2. Cara Menyalin Izin dan Kepemilikan File ke File Lain di Linux

  3. Linux – Memahami Izin Unix Dan Jenis File?