Buat dan Konfigurasikan Direktori SetGid untuk Kolaborasi - Persiapan Tujuan RHCSA

Buat dan Konfigurasikan Direktori SetGid untuk Kolaborasi - Persiapan Tujuan RHCSA

GNU/Linux Filesystem Izin dan Hak adalah dasar dari keamanan sistem, dan salah satu prinsipnya adalah pemisahan hak yang jelas untuk file dan folder. Dalam lingkungan yang sangat multiuser, seperti server sekolah, hak file mencegah pengguna secara default untuk secara tidak sengaja menghapus atau menimpa dokumen orang lain. Namun, ada kasus penggunaan di mana banyak pengguna perlu mengakses (membaca, menulis, dan bahkan menghapus) file pengguna lain - seperti itu mungkin terjadi di server sekolah yang disebutkan di atas, di mana siswa bekerja pada proyek yang sama. Di bagian persiapan ujian RHCSA ini kita akan belajar cara menciptakan lingkungan untuk kolaborasi semacam itu, menggunakan teknik SetGid (Set GroupID). Perhatikan bahwa saat kami melakukan langkah -langkah ini pada sistem operasi baru -baru ini, setgid bukanlah hal baru, dan Anda akan menemukannya di setiap dan semua distribusi.

Dalam tutorial ini Anda akan belajar:

  • Cara menambahkan pengguna ke grup tambahan
  • Cara menggunakan set-gid pada direktori
  • Cara Memeriksa Kepemilikan Yang Tepat Dalam Direktori Set-Gid
  • Cara menggunakan direktori khusus sebagai anggota grup
Mengaktifkan Kolaborasi dengan Setgid Directory.

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Red Hat Enterprise Linux 8
Perangkat lunak GNU Coreutils 8.30
Lainnya Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo memerintah.
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Kasus penggunaan

Untuk menunjukkan penggunaan setgid, kami memiliki server virtual, dan di atasnya kami perlu membuat sekelompok pengguna, menambahkan anggota, dan mengatur direktori yang mereka miliki keduanya akses. Sejauh ini hanya a
Masalah Pengaturan Izin. Triknya adalah menambahkan setGid ke direktori, sehingga file yang dibuat di dalam direktori akan memiliki grup pemilik direktori induk. Karena grup akan membaca dan menulis izin dalam direktori, setiap anggota grup dapat membaca dan menulis file, tanpa perlu keanggotaan grup pengaturan pengguna asli secara eksplisit.

Pengaturan Dasar

Pertama kami membuat objek yang dibutuhkan. Mari Buat Direktori Proyek:

# mkdir -p /student_projects /rocket_science

Dan dua pengguna kami, Sarah Dan John, Menggunakan perintah useradd:

# useradd john # useradd sarah

Kami juga perlu membuat grup pengguna yang akan memungkinkan kolaborasi antara anggotanya:

# Groupadd Rocketengineers

Selanjutnya kami mengatur grup ini sebagai pemilik Direktori Proyek, secara rekursif:

# chown -r: rocketengineers /student_projects /rocket_science

Selanjutnya, kami menambahkan pengguna kami ke Rocketengineers kelompok:

# usermod -a -g rocketengineers john # usermod -a -g rocketengineers sarah

Kami menambahkan grup sebagai grup sekunder. Untuk detail tentang grup, lihat tutorial keanggotaan grup.



Untuk menyelesaikan pengaturan dasar, kita perlu menambahkan izin penuh ke grup di direktori:

# CHMOD 770 /Student_Projects /Rocket_Science

Dan dengan ini, pengaturan dasar kami selesai. Kedua pengguna dapat menulis ke direktori, dan file yang dibuat akan dimiliki oleh pengguna, dan memiliki grup akan menjadi grup utama pengguna. Kami dapat memeriksa
izin yang kami tetapkan Stat:

# stat/student_projects/rocket_science file:/student_projects/rocket_science Ukuran: 6 blok: 0 IO blok: 4096 Perangkat Direktori: FD00H/64768D Inode: 17789698 Tautan: 2 Akses: (0770/DRWXRWX ---) uid: 0/Root: 2 ) GID: (1003/rocketengineers) Konteks: unconfined_u: object_r: default_t: s0 akses: 2020-10-04 18:29:57.500453785 +0200 Modifikasi: 2020-10-04 18:29:47.650278956 +0200 Perubahan: 2020-10-04 18:30:34.809115974 +0200 kelahiran: -

Pengidentifikasi kemungkinan besar akan berbeda. Kita dapat melihat bahwa pemilik direktori adalah akar, sedangkan kepemilikan kelompok milik Rocketengineers kelompok. Ini memungkinkan kedua anggota
dari grup untuk membaca dan menulis dari dan ke direktori.

Kolaborasi tanpa Setgid

Katakanlah kedua pengguna ingin berbagi beberapa catatan dengan pengaturan ini. Sarah Punya file teks dengan data penting di direktori rumahnya:

$ ID UID = 1002 (Sarah) GID = 1002 (Sarah) Groups = 1002 (Sarah), 1003 (rocketengineers) konteks = unconfined_u: unconfined_r: unconfined_t: s0-s0: c0.C1023 $ Cat General_Project.CATATAN Teks

Untuk membagikannya dengan John, Dia menyalin file ke direktori bersama (jadi masih ada cadangan di direktori rumahnya, untuk berjaga -jaga):

$ CP General_Project.catatan/student_projects/rocket_science/

Dengan memeriksa kepemilikan, kita dapat melihat bahwa pemiliknya memang Sarah, dan grup yang memiliki file juga Sarah, Grup utama pengguna:

$ stat/student_projects/rocket_science/umum.Catatan File:/Student_Projects/Rocket_Science/General_Project.Catatan Ukuran: 5 Blok: 8 IO Blok: 4096 Perangkat File Reguler: FD00H/64768D Inode: 18019570 Tautan: 1 Akses: (0664/-rw-rw-r--) UID: (1002/Sarah) GID: (1002/ Sarah) Konteks: unconfined_u: object_r: default_t: s0 akses: 2020-10-04 18:31:30.229099624 +0200 Modifikasi: 2020-10-04 18:31:30.229099624 +0200 Perubahan: 2020-10-04 18:31:30.229099624 +0200 kelahiran: -

Mari beralih ke John. Dia juga memiliki beberapa temuan tentang proyek ini, dan ingin membagikannya.

$ id uid = 1001 (John) gid = 1001 (John) grup = 1001 (John), 1003 (rocketengineers) konteks = unconfined_u: unconfined_r: unconfined_t: s0-s0: c0.C1023 $ ECHO "MYTEXT"> ROCKET.roket txt $ cp.txt/student_projects/rocket_science/


Izin yang sama berlaku, file yang baru disalin akan dimiliki oleh John:

$ stat/student_projects/rocket_science/rocket.file txt:/student_projects/rocket_science/rocket.Ukuran TXT: 7 Blok: 8 IO Blok: 4096 Perangkat File Reguler: FD00H/64768D Inode: 18356857 Tautan: 1 Akses: (0664/-rw-rw-r--) UID: (1001/John) GID: (1001/ John) Konteks: unconfined_u: object_r: default_t: s0 akses: 2020-10-04 18:32:24.433075710 +0200 Modifikasi: 2020-10-04 18:32:24.433075710 +0200 Perubahan: 2020-10-04 18:32:24.433075710 +0200 kelahiran: -

Karena mereka berdua adalah anggota Rocketengineers kelompok, mereka dapat membaca isi direktori, dan karena kedua catatan mereka dapat dibaca dunia, mereka berdua dapat saling membaca
file.

$ CAT/Student_Projects/Rocket_Science/General_Project.CATATAN Teks

Masalah muncul saat John ingin menambahkan beberapa catatan SarahFile data penting:

$ echo "beberapa komentar" >>/student_projects/rocket_science/umum.Catatan -Bash:/Student_Projects/Rocket_Science/General_Project.Catatan: Izin ditolak

Akibatnya, mereka tidak dapat bekerja pada file satu sama lain, hanya membacanya. Sekarang Sarah dapat menetapkan kepemilikan grup dari file -nya ke grup umum mereka, sehingga menyelesaikan masalah tersebut. Tapi kenapa dia membutuhkan
Itu dengan setiap file, jika kami mendapat setgid untuk membantu kami?

Mengatur bendera setgid

Untuk mengatur bendera setgid, kami gunakan Chmod:

# chmod g+s /student_projects /rocket_science

Perhatikan bendera "S" di GROP Izin (ditetapkan berani demi kejelasan):

# stat/student_projects/rocket_science file:/student_projects/rocket_science ukuran: 53 blok: 0 IO blok: 4096 Perangkat Direktori: FD00H/64768D Inode: 17789698 Tautan: 2 Akses: (2770/DRWXRW: 17789698 Tautan: 2 Akses: (2770/DRWXRW:S---) Uid: (0/ root) gid: (1003/ rocketengineers) Konteks: unconfined_u: object_r: default_t: s0 akses: 2020-10-04 18:32:29.389167450 +0200 Modifikasi: 2020-10-04 18:32:24.433075710 +0200 Perubahan: 2020-10-04 18:34:04.449927062 +0200 kelahiran: -

Menguji dan memverifikasi hasilnya

Sekarang Sarah dapat membagikan catatan penelitian barunya:

$ temuan kucing.txt rocket membutuhkan sayap $ cp temuan.txt/student_projects/rocket_science/$ stat/student_projects/rocket_science/temuan.file txt:/student_projects/rocket_science/temuan.Ukuran TXT: 19 Blok: 8 IO Blok: 4096 Perangkat File Reguler: FD00H/64768D Inode: 18999000 Tautan: 1 Akses: (0664/-rw-rw-r--) UID: (1002/Sarah) GID: ( 1003/Rocketengineers) Konteks: unconfined_u: object_r: default_t: s0 akses: 2020-10-04 18:35:15.195236593 +0200 Modifikasi: 2020-10-04 18:35:15.195236593 +0200 Perubahan: 2020-10-04 18:35:15.195236593 +0200 kelahiran: -


Kepemilikan grup diatur ke grup direktori induk karena setgid di tempat. Itu akan menyebabkan John untuk dapat mengomentari catatan penelitian baru:

$ echo "diverifikasi!">>/student_projects/rocket_science/temuan.txt $ cat/student_projects/rocket_science/temuan.roket txt kebutuhan sayap diverifikasi!

Dan dengan itu kami menyelesaikan tujuan kami untuk menyiapkan direktori kolaborasi untuk sekelompok pengguna. Kita bisa melakukannya untuk kelompok lain dengan metode di atas, memisahkan data proyek yang berbeda
izin, jadi anggota satu kelompok tidak dapat secara tidak sengaja menghapus data dari proyek lain.

# Judul Video: Bekerja di Direktori Setgid
# Deskripsi Video: Mengedit file pengguna lain di direktori setGid
# Nama file video: rhcsa_setgid.Webm

Bekerja di Direktori SetGid - Mengedit file pengguna lain di direktori SetGid

Kesimpulan

Di bawah izin GNU/Linux yang ketat dan hak kepemilikan, setgid adalah cara sederhana untuk memungkinkan pengguna sistem berinteraksi dengan file masing -masing dengan cara yang aman, memungkinkan kerja grup
Tanpa menggunakan beberapa solusi eksternal yang berat, atau mengacaukan grup awal pengguna dan izin. Dalam contoh di atas, kami tidak perlu menyentuh direktori rumah pengguna, atau seluruh sistemnya
Izin, kami baru saja mendirikan tempat khusus di mana mereka dapat membagikan apa yang mereka butuhkan.

Latihan

  1. Buat beberapa direktori proyek dengan kelompok yang berbeda. Periksa apakah salah satu anggota proyek dapat membaca file proyek lain.
  2. Buat direktori lintas proyek, di mana anggota proyek mana pun memiliki akses ke.
  3. Buat proyek silang Baca saja direktori, di mana hanya satu proyek (manajemen proyek) yang dapat ditulis, tetapi anggota semua proyek dapat membaca.

Tutorial Linux Terkait:

  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Menguasai loop skrip bash
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Menangani input pengguna dalam skrip bash
  • Seberapa sering Anda harus me -reboot server linux Anda?
  • Unduh Linux
  • Cara membuat cadangan tambahan dan diferensial dengan tar
  • File Konfigurasi Linux: 30 Teratas Paling Penting