Alasan di balik grup dan pengguna default di Linux

14

Setelah melihat-lihat manajemen pengguna & grup default pada beberapa distribusi Linux yang biasa (masing-masing ArchLinux dan Debian), saya bertanya-tanya dua hal tentang hal itu dan tentang konsekuensi dari memodifikasi pengaturan dan konfigurasi default.

Nilai default untuk USERGROUPS_ENABin /etc/login.defstampaknya "ya", yang dicerminkan oleh "Secara default, grup juga akan dibuat untuk pengguna baru" yang dapat ditemukan dalam useraddman, sehingga setiap kali pengguna baru dibuat, sebuah grup dibuat dengan nama yang sama dan hanya pengguna baru ini yang masuk. Apakah ada gunanya atau ini hanya pengganti?

Saya merasa kami kehilangan bagian dari manajemen hak sebagai pengguna / grup / lainnya dengan melakukan ini. Apakah buruk untuk memiliki grup "pengguna" atau "pelanggan tetap" atau apa pun yang Anda ingin sebut itu adalah grup default untuk setiap pengguna alih-alih memiliki sendiri?

Bagian kedua dari pertanyaan saya, yang masih didasarkan pada apa yang saya lihat di Arch dan Debian: ada banyak pengguna yang dibuat secara default (FTP, HTTP, dll.). Apakah ada gunanya bagi mereka atau hanya ada karena alasan historis?

Saya berpikir untuk menghapusnya tetapi tidak ingin merusak apa pun yang dapat menggunakannya, tetapi saya belum pernah melihat apa pun melakukannya, dan tidak tahu apa yang bisa. Hal yang sama berlaku untuk grup default (tty, mem, dll.) Yang belum pernah saya lihat milik pengguna.

Horgix
sumber
Jika Anda akan memberi saya waktu, saya akan memberikan jawaban yang bagus. Saya hanya pembohong yang lambat. Mungkin 30 menit atau lebih.
eyoung100
Poin utama dari semua grup ini adalah untuk program set-group-id.
Barmar
2
Pertanyaan pertama sangat dekat dengan yang ini .
Leiaz
@ECarterYoung: Tentu saja Anda bisa meluangkan waktu, terima kasih untuk ini!
Horgix
@Leiaz: Saya menyadari itu, tetapi masih ingin bertanya, "Apakah buruk memiliki grup" pengguna "atau" pelanggan tetap "atau apa pun yang Anda ingin sebut itu adalah grup default untuk setiap pengguna alih-alih memiliki milik mereka sendiri?" berpisah, dan menyimpan apa yang sebelumnya sebagai pengantar. Saya terutama memposting di StackOverflow tetapi diarahkan di sini.
Horgix

Jawaban:

13

Grup per pengguna

Saya juga tidak melihat banyak utilitas di grup per pengguna. Kasus penggunaan utama adalah jika pengguna ingin mengizinkan "teman" mengakses file mereka, mereka dapat memiliki pengguna teman ditambahkan ke grup mereka. Beberapa sistem yang saya temui sebenarnya menggunakannya dengan cara ini.

Ketika USERGROUPS_ENABin /etc/login.defsdiatur ke "tidak", useraddtambahkan semua pengguna yang dibuat ke grup yang ditentukan /etc/default/useraddoleh GROUPbidang. Pada sebagian besar distribusi, ini diatur ke GID 100yang biasanya sesuai dengan usersgrup. Ini memungkinkan Anda untuk memiliki manajemen pengguna yang lebih umum. Kemudian, jika Anda membutuhkan kontrol yang lebih baik, Anda dapat secara manual menambahkan grup ini dan menambahkan pengguna ke mereka yang masuk akal.

Grup dibuat default

Sebagian besar berasal dari alasan historis, tetapi banyak yang masih memiliki kegunaan yang valid saat ini:

  • disk adalah grup yang memiliki sebagian besar perangkat disk drive
  • lp memiliki port paralel (dan kadang-kadang dikonfigurasi untuk hak admin di gelas)
  • uucp sering memiliki port serial (termasuk port serial USB)
  • cdrom diperlukan untuk memasang hak istimewa pada drive cd
  • Beberapa sistem menggunakan roda untuk hak sudo; beberapa tidak
  • dll.

Grup lain digunakan oleh skrip latar belakang. Misalnya, manmenghasilkan file temp dan semacamnya saat dijalankan; prosesnya menggunakan man group untuk beberapa file tersebut dan biasanya membersihkannya sendiri.


Menurut Spesifikasi Core Basis Standar Linux , hanya 3 pengguna yang root, bin dan daemon benar-benar wajib . The alasan di balik kelompok lain adalah:

Tujuan menentukan pengguna dan grup opsional adalah untuk mengurangi potensi konflik nama antara aplikasi dan distribusi.

Jadi sepertinya lebih baik menjaga grup-grup ini tetap di tempatnya. Secara teori dimungkinkan untuk menghapusnya tanpa kerusakan, meskipun bagi sebagian orang, hal-hal "misterius" mungkin mulai tidak berfungsi dengan baik (misalnya, beberapa halaman manual tidak menampilkan jika Anda membunuh grup itu, dll). Tidak ada ruginya meninggalkan mereka di sana, dan umumnya diasumsikan bahwa semua sistem Linux akan memilikinya.

Jim Kusznir
sumber
Di mana saya dapat menemukan lebih banyak tentang pembuatan file temp? Dengan halaman manual yang terbuka, ps aux | grep mantidak menunjukkan kepada saya proses apa pun yang berjalan di bawah grup man, dan find -group man /juga tidak menunjukkan kepada saya apa pun. Sudah dicoba dengan man 2.6.7.1 pada instalasi Archlinux standar.
Horgix
4

Pertanyaan 1: Penalaran untuk Pengguna dan Grup yang Sama

Halo, saya ecyoung dan Anda mengerikan. Kami bekerja setiap hari dan masuk ke Server Linux yang sama dengan programmer. Suatu hari, belum lama ini, admin sistem kami memutuskan untuk membuat kreasi dan pemeliharaan pengguna lebih mudah, jadi ia mematikan USERGROUPS_ENABopsi dan menempatkan semua pengguna yang ada di usersgrup baru .


Ini memang membuat kreasi pengguna lebih mudah tetapi bukan pemeliharaan yang Anda lihat karena semua pengguna dapat mengakses semua file pengguna lain. Dalam lingkungan perusahaan, ini adalah tidak, tidak, karena hal-hal seperti Sarbanes Oxley dan Segregation of Duty . Jika saya membuat File A, Bit Grup diatur ke Grup Pengguna, yang berarti bahwa Semua pengguna setidaknya dapat membaca File A. Jika admin sys malas, maka dalam beberapa kasus semua pengguna dapat file RW A. Ini Mengalahkan Sarbanes Oxley dan SOD karena departemen yang terpisah tidak boleh membaca apalagi menulis dokumen orang lain.


Dengan Pengguna / Grup diaktifkan jika saya membuat dokumen sebagai ecyoung maka hanya saya yang memiliki hak rwx untuk itu. Karena tidak ada orang lain di grup saya, ketika mereka membuka dokumen saya, mereka melihat halaman kosong dengan peringatan. Ini memberlakukan Sarbanes-Oxley dan SOD. Jika saya mengundang pengguna lain, para pengguna itu diizinkan untuk mengakses, dan dengan melakukan itu saya tahu bahwa apa yang mereka lihat tidak akan kembali menggigit saya atau mereka. Seperti orang lain katakan, jika di rumah, pemisahan itu mungkin tidak penting bagi Anda. Jika Anda menentukan itu, maka Anda dapat mematikan opsi dengan aman dan semua pengguna akan ditambahkan ke usersgrup dengan GID 100. Lihat Pertanyaan 2 di bawah ini.

Hipotetis :
Anda bekerja di IT dan Louis bekerja di Payroll. Louis menyimpan lembar Pajak dan penggajian di direktori rumahnya, tetapi Anda berdua berada di grup pengguna, jadi Anda membuka direktori rumahnya karena ditandai dengan + r untuk pengguna dan menemukan spreadsheetnya. Anda menemukan jumlah gaji Anda terdaftar, bersama dengan Joe dan Fred. Apakah Anda pikir Joe dan Fred ingin Anda mengetahui gaji mereka ??


Pertanyaan 2: ID grup 0 hingga 500

ID Grup dan sebaliknya ID Pengguna 0 - 500 dicadangkan untuk akun sistem dan akses perangkat. Lihat tabel grup sistem Pra-Konfigurasi untuk daftar Akun Standar. Tolong jangan hapus akun ini dengan tangan. Misalnya jika Anda ingin menghapus ftp pengguna, hapus daemon ftp dengan sistem manajemen paket Anda. Melakukannya juga akan menghapus akun sistem. Layanan Sistem termasuk tetapi tidak terbatas pada:

  • Layanan Pencetakan CUPS
  • Daemon Server MySQL
  • Daemon Server FTP
  • Server Web Apace
  • Soket X Server untuk Koneksi Jarak Jauh
  • Daemon Sound System ALSA
  • Layanan DBUS

Ada yang lain, jadi jika pembaca lain ingin menambah atau menghapus dari daftar Layanan di atas, silakan lakukan.

eyoung100
sumber
5
Hipotetis yang bagus, tetapi gagal. 1. Izin default biasanya bertopeng 022, yang berarti orang lain tetap memiliki akses baca. 2. Sysad tidak hanya malas, tetapi tidak kompeten, karena ia seharusnya membuat grup sesuai dengan departemen dan menetapkan grup yang benar selama pembuatan akun, alih-alih menugaskan semua ke beberapa grup. The USERGROUPS_ENABharus tetap dimatikan kemudian. Menonaktifkan USERGROUPS_ENAB! = Menempatkan semua pengguna dalam grup yang sama.
muru
@ECarterYound untuk bagian pertama: Saya mengerti maksud Anda tentang perlindungan akses, dan mengoreksi saya jika saya salah, tetapi memiliki semua pengguna dalam usersgrup seharusnya tidak menjadi masalah dengan manajemen hak yang tepat pada grup, yang tidak memberikan hal yang sama persis hak atas grup daripada pemiliknya. Jadi satu-satunya hal baik yang USERGROUPS_ENABdinyalakan adalah memiliki pemeliharaan yang lebih mudah karena memungkinkan Anda untuk mempertahankan hak default saat membuat file dan direktori sementara masih memiliki akses terbatas untuk pengguna lain?
Horgix
Itu benar, tetapi banyak orang tidak mengelola Grup dengan benar jika mereka adalah pengguna rumahan. Saya tidak bisa memverifikasi ini dengan pasti, tetapi saya percaya pengelola menciptakan opsi untuk menopang manajemen izin.
eyoung100
3

Jika kita semua berbagi grup default, seperti di masa lalu, maka kita perlu mengatur umask kita ke 077 untuk memblokir grup. Jika defaultnya adalah saya, maka saya dapat mengatur umask ke 027, sekarang jika saya mengatur direktori file ke grup bersama, grup ini dapat membaca. Saya tidak perlu dipusingkan dengan mode juga.

Ini hanya satu contoh, tetapi secara umum ini adalah cara untuk menonaktifkan grup, sampai Anda membutuhkannya, dengan cara yang membuat mereka lebih mudah untuk dihidupkan dan dikelola.

ctrl-alt-delor
sumber
1

Grup per pengguna memungkinkan Anda memiliki "privasi di direktori home" serta "kolaborasi mudah di folder bersama". Tanpa grup per pengguna, Anda dapat memiliki keduanya tetapi tidak keduanya. Detail mengikuti:

Unix adalah sistem multi-pengguna, apakah itu server file perusahaan atau pc dengan 2 pengguna. "Privasi di direktori rumah Anda" dapat direalisasikan beberapa cara:

Set "umask 077" sehingga file dibuat dengan rw untuk Anda dan tidak ada izin untuk orang lain. Atau, 027 atau 022 sehingga beberapa atau semua dapat membaca tetapi tidak menulis file Anda. Kerugian yang jelas adalah bahwa Anda tidak dapat berkolaborasi dalam folder bersama karena yang lain tidak dapat bekerja pada file yang Anda buat di sana karena izin yang ketat. Anda dapat mengubah izin pada file seperti itu, tetapi itu "terlalu banyak bekerja" dan sering dilupakan.

Untuk berkolaborasi, Anda menginginkan sesuatu seperti "umask 7" sehingga Anda dan grup pemilik dapat membaca & menulis file yang Anda buat. Ini bagus untuk folder dan grup bersama yang terdiri dari semua orang yang membutuhkan akses bersama. Tetapi Anda kehilangan privasi di folder rumah Anda!

Grup per pengguna adalah solusinya! Anda menggunakan umask 7, jadi semua file yang Anda buat mendapat "rw untuk Anda, dan rw untuk grup". File di direktori home Anda akan dibuat dengan grup pribadi Anda sebagai "grup pemilik", jadi tidak ada orang lain yang dapat mengakses file-file tersebut tanpa izin "grup rw". Karena tidak ada orang lain selain Anda yang termasuk dalam kelompok itu.

Anda masih dapat berkolaborasi dalam folder bersama. File dalam folder bersama mendapat "rw" untuk grup pemilik, dan sysadmin mengatur folder bersama sehingga grup yang dibagi (disebut kolaborator) akan menjadi pemilik grup untuk file di sana. Ini dilakukan dengan membuat grup kolaborator ini, dengan semua pengguna yang berkolaborasi sebagai anggota. Kemudian, admin menetapkan kepemilikan grup folder bersama ke "kolaborator" dan mengatur izin SETGID untuk folder bersama. Dengan SETGID aktif, apa pun yang dibuat di folder bersama akan mendapatkan pemilik grup yang sama dengan folder bersama - yaitu grup "kolaborator". Dan dengan umask 7 (atau alternatif 2), orang-orang dalam grup ini semua akan memiliki akses baca + tulis sehingga dapat berkolaborasi.

Helge Hafting
sumber
0

Awalnya, proses Unix bisa menjadi milik satu grup pada satu waktu (dulu ada chgrp(1)perintah, meminta kata sandi grup yang disimpan dalam bidang kata sandi vestigial di /etc/groups). Sistem Plus digunakan oleh kelompok pengguna yang sangat dekat. Masuk akal untuk memiliki semua orang diusers grup, dan berbagi hal-hal di seluruh sistem dengan izin grup. Tidak ada kesadaran keamanan yang nyata, sedikit kecurigaan dari sekitar selusin pengguna. Semuanya lokal, di mesin yang sama. Tidak ada jaringan untuk berbagi barang misalnya melalui blog atau lebih.

Sistem Unix saat ini memiliki ratusan pengguna, persyaratan keamanan lebih ketat, dan pengguna (dan proses) dapat menjadi bagian dari beberapa kelompok. Berikan masing-masing (lebih tidak mengerti) pengguna grup rumah, dan biarkan menyimpang dari itu untuk berbagi. Atau gunakan ACL.

vonbrand
sumber