Casing penggunaan umum untuk kata sandi grup

35

Saya telah memeriksa lebih dari setengah abad pengalaman Unix yang berharga dan baik kolega saya, maupun saya sendiri tidak pernah menetapkan kata sandi pada grup ( sgdan gpasswd). Apa yang akan menjadi kasus penggunaan khas untuk kata sandi grup atau apakah itu hanya ada karena alasan historis?

jippie
sumber
4
Mungkin saya harus mengirim email kepada Ken , meminta pertimbangannya selama fase desain; o)
jippie

Jawaban:

26

Saya juga belum pernah melihat fitur ini digunakan, bahkan sekali pun. Sebagian besar SA bahkan tidak menyadari bahwa fasilitas ini ada. Dalam melihat halaman manual gpasswdada catatan ini:

Catatan tentang kata sandi grup

  Group passwords are an inherent security problem since more than one 
  person is permitted to know the password. However, groups are a useful 
  tool for permitting co-operation between different users.

Kenapa mereka ada

Saya pikir mereka adalah ide alami dalam menirukan model pengguna yang memiliki kata sandi, yang masuk akal untuk menduplikasi yang menggunakan model kasus ke grup juga. Tetapi dalam praktiknya mereka tidak terlalu berguna untuk apa pun.

Gagasan dengan kata sandi grup adalah bahwa jika Anda perlu mendapatkan akses ke grup tertentu (yang Anda tidak terdaftar sebagai anggota), Anda dapat melakukannya dengan menggunakan newgrpperintah, dan ditantang dengan kata sandi untuk mendapatkan akses untuk kelompok-kelompok alternatif ini.

Masalah besar dengan mereka adalah hanya ada satu kata sandi untuk setiap grup, sehingga memaksa orang untuk membagikan kata sandi ini, ketika banyak orang memerlukan akses ke grup tertentu ini.

Grup

Sebagian besar lingkungan yang saya temui biasanya menempatkan orang dalam grup sekunder, dan kemudian memberikan grup ini akses ke file pada sistem file, dan ini telah memuaskan hampir semua penggunaan yang perlu terjadi.

sudo

Dengan munculnya sudoizin tambahan dapat diberikan atas dasar yang diperlukan untuk grup, lebih lanjut merongrong setiap kasus penggunaan yang mungkin diberikan kata sandi grup. Jika Anda perlu memberi izin kepada pengguna lebih banyak, akan lebih mudah untuk membuat peran sudodan kemudian hanya mengizinkan ada nama pengguna atau grup di mana mereka berada, izin untuk meningkatkan izin di sana sehingga mereka dapat melakukan tugas tertentu.

ACL

Akhirnya kemampuan untuk membuat Daftar Kontrol Akses (ACL) benar-benar memberikan sedikit fleksibilitas terakhir yang tidak dapat diberikan oleh model Pengguna / Grup / Lainnya sendirian, menurunkan kemungkinan kebutuhan kata sandi grup menjadi tidak jelas.

slm
sumber
Anda sudah menyebutkan sudodan ACL. Saya kira udevdatang dengan cerita yang serupa, tentu saja dengan fokus pada perangkat. Baca menarik.
jippie
11

Berikut ini adalah penggunaan praktis untuk kata sandi grup, yang saya terapkan untuk diri saya sendiri di server kerja kami, karena log menunjukkan akun saya sedang dipaksa (atau bisa jadi serangan kamus).
Saya menggunakan ssh-keygendan dengan puttygenpenuh hormat untuk menghasilkan pasangan kunci untuk digunakan dari komputer saya dan komputer di rumah. Kunci yang saya gunakan dari rumah membutuhkan kata sandi. Saya menambahkan kedua kunci publik ke .ssh/authorized_keys, membuat grup marionettedengan kata sandi dan tidak ada anggota. Sebagai root, saya biasa visudomenambahkan baris berikut.

Cmnd_Alias      SUDOING = /bin/bash, /usr/bin/sudo -i
%marionette     ALL=NOPASSWD:SUDOING

Saya telah menonaktifkan kata sandi akun saya, Anda tidak dapat masuk dengan cara itu. Sekarang saya hanya login dengan kunci saya dan memasuki grup yang dilindungi kata sandi newgrp marionettememungkinkan saya untuk menjadi root menggunakan sudo -i.
Tanpa NOPASSWD:opsi itu akan memerlukan kata sandi akun pengguna Anda . Jika dinonaktifkan dan grup ini tidak memiliki NOPASSWD, Anda tidak akan bisa sudo -i. Ini juga akan memerlukan kata sandi akun pengguna Anda jika daftar perintah Anda tidak memiliki /bin/bashatau apa pun shell root Anda gunakan secara default.

Meskipun ini membuat jalan menuju sudoing beberapa langkah lebih lama, ini menambah lapisan keamanan yang baik. Jika Anda memilih untuk membuat semua akun Anda seperti ini, buat satu akun lokal dengan kata sandi dan hak istimewa sudo, tetapi tolak ssh dari itu /etc/ssh/sshd_configdengan menambahkan sesuatu seperti:

DenyUsers root caan
DenyGroups root daleks

Ini diperlukan untuk akses lokal jika Anda menginstal ulang dan lupa untuk membuat cadangan kunci akses Anda.

coladict
sumber
Anda bisa melakukan ini jauh lebih baik tanpa sudojika Anda menggunakan newgrpperintah POSIX . tetap saja, jawaban yang sangat bagus.
mikeserv
Bukan jawaban yang tepat untuk pertanyaan, tetapi proposal yang sangat baik untuk penggunaan dan kombinasi "lama" ( newgrp) dan "baru" ( sudo) dengan nilai tambah yang jelas. Ini pantas beberapa pujian.
Dirk
1

Saya belum pernah melihat kasus penggunaan untuk kata sandi itu juga. Dan itu adalah sekitar 20 tahun pengalaman * nix.

Satu-satunya use case yang muncul di pikiran saya adalah untuk mengaturnya menjadi "!" - Terkunci, jadi tidak seorang pun, tidak menjadi anggota kelompok itu dapat mengubahnya dengan newgrpperintah.

Jika saya melihat / etc / group pada SLES atau / etc / gshadow pada sistem berbasis RedHat, ini sepertinya case-use "tipikal". SLES bahkan tidak repot-repot membuat mekanisme bayangan untuk kata sandi itu.

Nils
sumber
Tidak yakin apa yang kamu maksud. Misalnya. Saya belum bisa newgrp ntp, bagaimana cara - !mengunci mengubah itu?
jippie
@ jippie - jadi apa bidang kata sandi untuk ntp di sistem Anda? Jika itu adalah kata sandi yang mudah ditebak, Anda dapat melakukan ngrp newgrp. Dengan! kamu tidak bisa.
Nils
Itu hanya sebuah contoh, ia memiliki 'x' dan tidak ada anggota grup selain pengguna ntp itu sendiri. Saya hanya tidak mendapatkan masalah apa yang Anda !
selesaikan
2
Dari man newgrp: Pengguna akan ditolak aksesnya jika kata sandi grup kosong dan pengguna tidak terdaftar sebagai anggota.
user2387
0

Izinkan saya menyarankan use case.

Pertama, izinkan saya mengatakan bahwa kita sudah terbiasa dengan istilah "pengguna" sehingga kita bahkan tidak memikirkannya. Tetapi "pengguna" sebenarnya bukan pengguna . Misalnya, di rumah kami memiliki tiga komputer - laptop istri saya, laptop saya, dan komputer desktop umum. Ketika saya menggunakan laptop istri saya, saya masuk dengan akun penggunanya. Ketika Dia menggunakan laptop saya, dia masuk dengan akun pengguna saya. Jika seseorang membutuhkan desktop, ia menggunakan satu akun yang sama. Kita melihat di sini bahwa hal yang oleh sistem komputer disebut "pengguna" bukanlah benar-benar pengguna melainkan alur kerja - serangkaian aktivitas.

Inilah pertanyaannya: Mengapa saya tidak dapat memiliki lebih dari satu aktivitas - satu untuk setiap pekerjaan berbeda yang saya miliki? Saya bisa. Di komputer kerja saya, saya telah membuat (secara eksperimen) banyak pengguna yang berbeda sehingga saya dapat fokus pada tugas saat ini. Saya menempatkan semua pengguna ini dalam grup yang sama sehingga saya dapat mengakses file saya tanpa melihat pengguna mana yang saat ini saya gunakan.

Jadi di mana gpasswd cocok dengan ini?

Perilaku default Ubuntu adalah membuat grup khusus untuk setiap pengguna.

Bagaimana jika kita memutuskan untuk memikirkan grup utama ini sebagai pengguna dan memikirkan pengguna sistem sebagai alur kerja ?

Daripada pengguna baru ini akan membutuhkan kata sandi untuk login, kan? Di sinilah tempat gpasswd. Saya masih perlu mencari cara untuk masuk dengan grup (hingga saat ini yang saya tahu adalah Anda dapat mengganti grup dengan gpasswd jika Anda sudah masuk).

Raicho Nikolov
sumber
kata sandi grup adalah inti dari pertanyaan ini, yang belum Anda jawab.
Jeff Schaller
Dari sudut pandang keamanan dan akuntabilitas, yang sangat umum di bidang TI, menggunakan akun pengguna orang lain tidak dapat diterima. Meskipun dapat bekerja untuk situasi rumah Anda, ini merupakan praktik buruk bagi lingkungan perusahaan.
jippie