Mengapa root di roda dan operator? Bisakah root berada dalam grup yang pernah membuat perbedaan?

18

Saya baru tahu di mesin FreeBSD saya bahwa root ada di roda dan operator. Saya mencoba memikirkan situasi di mana UID 0 berada dalam grup akan berdampak pada ... well ... apa pun, dan saya kosong. Dalam hal ini, apakah root bahkan memerlukan grup login primer di / etc / passwd? Atau apakah login (3) tercekik dan mati jika pengguna memiliki bidang grup primer kosong?

(Untuk memperjelas: Saya mengerti tujuan dari keberadaan grup "root", karena file memerlukan pemilik grup. Saya tidak mengerti bagaimana pentingnya pengguna root / toor / apa pun yang memiliki keanggotaan grup itu.)

Apakah ini hanya kesalahan dari beberapa dekade lalu, atau adakah alasan nyata untuk itu?

Bandrami
sumber

Jawaban:

5

Singkatnya: tidak. Memiliki root wheeldan operatorgrup tidak mengubah apa pun.

Tetapi Anda juga mempertanyakan 2 hal lain:

  • root group id adalah (secara default) diatur ke 0, yang merupakan hal terdekat dengan nilai kosong yang bisa Anda dapatkan.

    $ head -4 /etc/passwd
    # $FreeBSD: releng/9.2/etc/master.passwd 243947 2012-12-06 11:52:31Z rwatson $
    #
    root:*:0:0:Charlie &:/root:/bin/csh
    toor:*:0:0:Bourne-again Superuser:/root:
    

    Seperti yang dikatakan, setiap pengguna harus memiliki grup, jadi Anda tidak dapat mengatur id grup root (atau setiap pengguna gid) ke nilai kosong atau kosong. Jika Anda mencoba mengatur gid pengguna menjadi kosong, Anda akan diperingatkan oleh pwd_mkdb:

    pwd_mkdb: no gid for user root
    pwd_mkdb: at line #3
    pwd_mkdb: /etc/pw.Rlb2U3: Inappropriate file type or format
    re-edit the password file?
    

    Jadi fakta bahwa root didefinisikan lebih tentang memiliki nama dengan benar, bukan hanya nomor bodoh. Anda dapat mengubah root gid ke nomor yang tidak berarti (gid tidak di dalam /etc/group). Pengguna root Anda masih bisa masuk, suatau apa pun yang bisa dilakukan root . Anda hanya akan memiliki sesuatu seperti itu:

    $ id
    uid=0(root) gid=10000 groups=10000,5(operator)
    
  • tentang mengapa beberapa pengguna berada dalam kelompok roda yang merupakan cerita yang sama sekali berbeda, seperti FreeBSD , seperti OpenBSD atau NetBSD , pengguna harus menjadi bagian dari wheeluntuk dapat melakukan su root .

    Dari dokumentasi FreeBSD ( bab 9.4 ):

    Untuk su ke root (atau akun lain dengan hak superuser), Anda harus berada di grup wheel . Jika fitur ini tidak ada, siapa pun yang memiliki akun di sistem yang juga menemukan kata sandi root akan dapat memperoleh akses tingkat pengguna super ke sistem. Dengan fitur ini, ini tidak sepenuhnya benar; su (1) akan mencegah mereka dari bahkan mencoba memasukkan kata sandi jika mereka tidak berada di roda .

    Tapi Anda benar, menghapus pengguna root dari kemudi tidak akan mengubah hal-hal. Ini murni formal, sebanyak pengguna toor bukan bagian dari roda atau root adalah bagian dari grup operator .

  • Namun, kelompok operator itu murni formal, tanpa makna khusus.

Berikut ini juga pendapat Richard Stallman tentang grup roda (dari manual gnu su ):

Mengapa GNU "su" tidak mendukung grup `wheel '===================================== ==========

(Bagian ini oleh Richard Stallman.)

Terkadang beberapa pengguna mencoba memegang kekuatan total atas yang lainnya. Misalnya, pada tahun 1984, beberapa pengguna di laboratorium MIT AI memutuskan untuk mengambil alih kekuasaan dengan mengubah kata sandi operator pada sistem Twenex dan merahasiakannya dari orang lain. (Saya dapat menggagalkan kudeta ini dan memberikan kekuatan kembali kepada pengguna dengan menambal kernel, tetapi saya tidak tahu bagaimana melakukannya di Unix.)

Namun, terkadang para penguasa memberi tahu seseorang. Di bawah mekanisme "su" yang biasa, begitu seseorang mempelajari kata sandi root yang bersimpati dengan pengguna biasa, ia dapat memberi tahu sisanya. Fitur "grup roda" akan membuat ini tidak mungkin, dan dengan demikian memperkuat kekuatan para penguasa.

Saya berada di pihak massa, bukan penguasa. Jika Anda terbiasa mendukung bos dan sysadmin dalam apa pun yang mereka lakukan, Anda mungkin menemukan ide ini aneh pada awalnya.

Ouki
sumber
1

login (3) dan yang lainnya mengharapkan grup utama. Mereka membutuhkannya sehingga mereka dapat mengatur bidang yang valid dalam file utmp / wtmp. Dan bahkan jika mereka tidak (mengubah format file), Anda akan mendapatkan masalah yang lebih mendasar ketika login (1) atau sshd (8) atau program lain mencoba untuk mengatur sesi pengguna - terlepas dari utmp / wtmp mereka perlu mengisi keduanya Properti proses kernel UID dan GID (seperti file yang dibuat oleh pengguna yang masuk harus memiliki UID dan GID yang diisi, seperti yang Anda perhatikan).

Adapun masalah mengapa all-powerful-root membutuhkan lebih dari grup primer, itu tidak untuk pemeriksaan izin (karena mereka dilewati untuk UID 0), tetapi itu untuk beberapa kegunaan lain.

Grup "wheel" terutama digunakan untuk beberapa pemeriksaan otentikasi tambahan seperti misalnya pam_wheel

Grup lain seperti "operator" dapat digunakan untuk fitur keamanan (misalnya, beberapa proses ketika dijalankan oleh root dapat mengatur fluid (2) menjadi USER yang tidak memiliki hak (seperti "tidak ada"), sambil tetap mempertahankan keanggotaan GROUP (seperti "operator"). Ini akan memungkinkan proses tersebut untuk terus mengakses file yang dimiliki oleh kelompok itu, sementara secara signifikan mengurangi masalah keamanan berjalan dengan akses UID 0 penuh.

Saya tidak yakin apakah ada program yang memanfaatkan fitur ini di sistem Anda (atau jika FreeBSD CURRENT default)

Matija Nalis
sumber
0

Ini dapat membuat perbedaan - begitu program memeriksa keanggotaan grup dan berperilaku berbeda tergantung pada hasilnya. Tentu saja, tidak ada perbedaan dengan hak istimewa yang bisa dipaksakan oleh pengguna root .

pemeras
sumber
0

Bukankah jika tidak ada yang menjadi anggota grup wheel, maka wheel hanya diabaikan dan semua pengguna dapat menjalankan su ... dan berpotensi menebak kata sandi. Dengan memiliki setidaknya satu userid anggota roda grup (yaitu userid root), maka kontrol roda diperiksa dan hanya anggota roda grup lain yang dapat mencoba menjalankan su.

Rufwoof
sumber