Dapatkah saya membuat * super * pengguna super sehingga saya benar-benar dapat memiliki pengguna yang dapat menolak izin untuk melakukan rooting?

34

Saya berpikir mungkin menguntungkan untuk memiliki pengguna dengan izin lebih tinggi daripada pengguna root.

Anda lihat, saya ingin menjaga semua kegiatan dan hampir semua hak pengguna root yang ada persis seperti sekarang.

Namun, saya ingin kemampuan untuk menolak hak istimewa untuk berakar pada kasus per kasus yang sangat terisolasi.

Salah satu keuntungan dari ini akan memungkinkan saya untuk mencegah file yang tidak diinginkan tertentu diinstal selama pembaruan. Ini hanyalah contoh dari satu kemungkinan keuntungan.

Karena pembaruan apt-get dijalankan oleh root atau dengan hak sudo, apt-get memiliki kemampuan untuk mengganti file-file tertentu yang tidak diinginkan selama pembaruan.

Jika saya bisa menolak hak istimewa ini untuk file-file khusus ini, saya bisa mengaturnya sebagai simlink ke /dev/nullatau mungkin memiliki file placeholder kosong yang bisa memiliki izin yang akan menolak file agar tidak diganti selama pembaruan.

Selain itu, saya tidak dapat membantu tetapi diingatkan tentang sebuah baris yang dikatakan dalam sebuah wawancara dengan salah satu pembuat Ubuntu ketika lelaki itu mengatakan sesuatu tentang bagaimana pengguna lebih mempercayai "kami" (merujuk pada pengembang Ubuntu) "karena kami memiliki root "Yang merupakan referensi bagaimana pembaruan sistem dilakukan dengan izin root.

Cukup mengubah prosedur instalasi untuk mengatakan mengatasi masalah ini sama sekali bukan yang saya tertarik di sini. Sekarang pikiran saya memiliki selera untuk gagasan memiliki kekuatan untuk menolak akses root, saya ingin mencari cara untuk membuat ini terjadi hanya demi melakukannya.

Saya hanya memikirkan hal ini dan belum menghabiskan waktu untuk ide sejauh ini dan saya cukup yakin bahwa ini bisa diatasi. Namun, saya ingin tahu apakah ini sudah dilakukan atau mungkin ini bukan ide atau konsep baru.

Pada dasarnya, sepertinya harus ada beberapa cara untuk memiliki pengguna super-super yang akan memiliki izin di luar sistem hanya dengan satu derajat.


Catatan: Meskipun saya merasa jawaban yang diterima paling cocok dengan kriteria, saya sangat suka jawabannya oleh @CR. juga.

Saya ingin membuat pengguna yang sebenarnya lebih tinggi di pohon (saya) tapi saya kira saya hanya perlu duduk satu hari ketika saya punya waktu untuk mencari tahu.

Selain itu, saya tidak mencoba memilih Ubuntu di sini; Saya tidak akan menggunakannya sebagai distro utama saya jika saya merasa negatif tentang hal itu.

mchid
sumber
4
Apa jenis file yang Anda bicarakan dan mengapa? " mencegah file yang tidak diinginkan tertentu diinstal _" menunjukkan file tidak (biasanya) ada, dan Anda ingin menghentikannya; tetapi "_hat akan menolak file agar tidak diganti selama pembaruan. " menyarankan file sudah ada (dengan, konten yang mungkin diinginkan) dan Anda tidak ingin versi baru.
TripeHound
6
Ketahuilah bahwa metode apa pun yang mencegah aptdari (over) penulisan file dapat menyebabkan kesalahan, membatalkan proses pembaruan. aptkemudian akan menolak untuk melakukan pembaruan atau pemasangan apa pun hingga "masalah" terpecahkan.
Dubu
6
"Cukup mengubah prosedur instalasi untuk mengatakan menyelesaikan masalah ini sama sekali bukan yang saya minati di sini." Mungkin begitu, tetapi umumnya cara yang tepat untuk memecahkan masalah seperti yang dinyatakan. Membatasi root dapat dilakukan (secara formal, root-in-userland bukan tingkat akses yang sama dengan mode kernel), dan ada sistem untuk mencapainya, tetapi bertentangan dengan filosofi Unix dan prinsip-prinsip keamanan dasar. Secara umum, setelah seseorang memiliki root "parsial", sangat sulit untuk memasukkan semua yang mereka gunakan untuk mendapatkan root "penuh". Lebih suka memberi root ke kode tepercaya.
Kevin
8
@mchid: root adalah kontrol penuh. Itulah intinya. Untuk membuatnya tidak memiliki kontrol penuh, Anda harus menolak begitu banyak hal sehingga tidak lagi terlihat seperti root (mis. Tidak menginstal modul kernel, tidak ada pemasangan perangkat yang sewenang-wenang, dan sebagainya). Jika Anda tidak ingin menjalankan sesuatu sebagai root, maka jangan menjalankannya sebagai root. Sebagai gantinya, bagikan kemampuan (kecuali untuk semua yang setara dengan root , jangan repot-repot dengan itu) atau menjalankan daemon seperti polkitd yang melakukan operasi root atas nama proses non-root.
Kevin
4
@ mchid: Itulah masalahnya: Ada banyak cara bagi program untuk menghindari batasan Anda. Kecuali Anda memasukkan semua cara itu ke daftar hitam, program apa pun yang Anda jalankan sebagai "root terbatas" masih dapat menjadi root penuh kapan pun ia mau. Jadi seluruh skema Anda tidak lebih dari sandiwara teater keamanan.
Kevin

Jawaban:

83

"Pengguna" yang Anda inginkan disebut modul keamanan LSM: Linux. Yang paling terkenal adalah SELinux dan AppArmor.

Dengan ini Anda dapat mencegah binari tertentu (dan proses anak mereka) dari melakukan hal-hal tertentu (bahkan jika UID mereka root). Tetapi Anda dapat mengizinkan operasi ini gettydan proses anaknya sehingga Anda dapat melakukannya secara manual.

Hauke ​​Laging
sumber
2
Tetapi jika UID mereka root, tidak bisakah mereka mengubah izin selinux yang mencegah mereka mengakses?
curious_cat
11
@curious_cat: Ya, tentu saja Anda perlu menolak proses "root terbatas" kemampuan untuk mengubah / meningkatkan izinnya sendiri! Orang-orang yang menulis SELinux sudah memikirkan itu ...
Peter Cordes
8
@curious_cat Anda dapat mengkonfigurasi LSM sehingga sama sekali tidak mungkin untuk mengubah konfigurasi mereka pada saat run time. Anda harus reboot dan memberikan parameter kernel untuk itu.
Hauke ​​Laging
5
@ Joshua Jika salinan apt-get Anda menggunakan Rowhammer, maka Anda memiliki masalah yang lebih besar untuk dikhawatirkan.
Draconis
3
@corsiKa Pertama, Anda ingin membatasi orang-orang yang dapat mem-boot mesin ke orang-orang yang benar-benar di mesin, karena sistem rentan saat mereka boot. Memicu reboot melalui net tidak apa-apa, tetapi memungkinkan kontrol karena boot tidak. Kedua, aturan keamanan komputer adalah bahwa Anda tidak dapat melakukan apa pun begitu penyerang memiliki akses fisik, karena dengan demikian mereka juga dapat menenggelamkan semua yang ada di LN2 / memasang ulang perangkat keras / dll. Jadi, ya, seseorang yang dapat mengubah booting mesin umumnya dianggap telah "memenangkan" mesin.
HTNW
51

Anda salah memahami konsep rootpengguna.

Dalam bahasa Inggris biasa, rootada di "puncak pohon".

Bagaimana jika Anda memutuskan suatu hari untuk memiliki "pengguna super super", dan kemudian bulan depan, "pengguna super super super" (!). Seberapa jauh "naik" pohon yang ingin Anda tuju? Bagaimana Anda mengocok semua izin dan hierarki untuk membuatnya berfungsi? Siapa yang selalu di atas? Seseorang harus di atas, dan itu root. Akhir dari cerita.

Solusi yang diberikan di sini - termasuk AppArmor dan SELinux - tidak benar-benar mengubah ini. Mereka hanya memungkinkan kontrol butir yang lebih baik atas rootizin dan proses.

Bagi saya sepertinya proses pembaruan Anda tidak cocok untuk hasil yang diinginkan. Tapi itu sama sekali bukan kesalahan rootpengguna. Alih-alih hal-hal yang terlalu rumit, anggap rootsebagai pengguna izin tingkat tertinggi, dan yang lainnya, Anda harus bekerja ke bawah.

Saya tahu beberapa orang akan menandai ini, tetapi tidak ada level yang lebih tinggi dalam hirarki pengguna, dan semua solusi lain hanya memberikan kontrol yang sedikit berbeda tentang cara rootkerja izin. Tetapi mereka tidak membuat pengguna baru, dengan izin yang lebih tinggi.

Anda tidak dapat memiliki pengguna dengan "izin lebih banyak" daripada rootkarena rootmewakili tingkat izin setinggi mungkin. Menggunakan frasa seperti "lebih banyak kontrol daripada root" adalah sebuah kontradiksi - rootmemiliki kontrol penuh dan semua izin yang memungkinkan, jadi tidak ada yang dapat dilakukan di atasnya.

Andy
sumber
Saya akan berada di atas bukan root, akhir cerita. Karena tidak ada level yang lebih tinggi dalam hierarki pengguna adalah alasan yang tepat saya ingin membuat pengguna yang lebih tinggi.
mchid
Meskipun, itulah yang saya inginkan: kontrol atas izin root dan proses sehingga saya bisa menolak izin untuk melakukan root. Jika saya entah bagaimana dapat menolak izin untuk melakukan rooting tanpa membuat pengguna baru dengan SELinux atau AppArmor maka saya kira saya tidak memerlukan pengguna baru. Saya ingin kontrol penuh, lebih banyak kontrol daripada root.
mchid
16
Anda tidak dapat memiliki pengguna yang memiliki "izin lebih banyak" daripada root. Itulah keseluruhan masalahnya. Pengguna yang ingin Anda ciptakan pada dasarnya adalah pengguna root. Anda perlu mendekati ini dengan cara lain, seperti membuat pengguna dengan roothak istimewa, dan kemudian menolak yang tertentu di mana Anda ingin kontrol yang lebih baik. Apa yang Anda minta ("lebih banyak kontrol daripada root") tidak mungkin, atau bahkan satu hal!
Andy
@mchid Jadi apa yang sebenarnya ingin Anda lakukan adalah mengganti nama pengguna root saat ini menjadi mchid, membuat pengguna baru bernama root dan membuat apt-get et al menggunakan pengguna baru Anda, non-root?
Odalrick
Pada beberapa sistem, roottidak memiliki izin untuk mengakses perangkat keras secara langsung. Jika Anda menonaktifkan pemuatan modul kernel, Anda dapat menjaga root tetap terkendali dari perangkat keras ( /dev/mem, dan hal-hal seperti itu). Tidak benar-benar relevan untuk izin sistem file, karena Anda tidak akan menggunakan apt-get yang berbicara langsung dengan pengontrol SATA atau NVMe Anda ... Tetapi secara teknis, ada keadaan "lebih banyak izin daripada root", dan ini disebut mode kernel. : P
Peter Cordes
26

Jika Anda hanya ingin mencegah file atau direktori tidak diubah / dihapus maka atur saja flag yang tidak dapat diubah padanya.

chattr +i <file>

Bahkan root tidak akan dapat melakukan apa pun pada mereka kecuali flag dihapus. Dimungkinkan juga untuk menggunakan sistem container / namespace untuk mencegah akses root tapi itu sepertinya memerlukan banyak usaha keras untuk apa yang Anda butuhkan.

CR.
sumber
11
Tetapi root dapat menghapus bendera.
sebasth
10
apt, seperti hampir semuanya, tidak akan menggunakan chattr untuk menghapus bendera itu.
CR.
13
@sebasth: Skrip instalasi yang benar, tetapi Apt, dpkg, dan per-paket tidak akan (biasanya) mengubah atribut file. Sebaliknya mereka hanya akan gagal dan mengeluh ketika mereka mencoba untuk mengubah file dengan flag yang tidak dapat diubah.
David Foerster
4
@ TripeHound Jadi OP ingin apt-getberhasil mengganti file, namun tetap memiliki file itu? Saya kira itu agak kontradiktif.
Dmitry Grigoryev
3
@DmitryGrigoryev Ini terdengar seperti mereka ingin apt-getuntuk berpikir itu berhasil tetapi meninggalkan satu atau lebih file tidak berubah. Mereka tidak mengatakan file mana atau mengapa, tetapi seperti yang Anda katakan, agak kontradiktif - dan rentan terhadap "perilaku aneh" di masa depan.
TripeHound
9
  • Alih-alih memiliki pengguna super-super, Anda dapat membatasi root. lihat Apa saja cara berbeda untuk mengatur hak akses file dll di gnu / linux

  • Ada juga AppArmor dan SELinux.

  • Dan / Atau konfigurasikan sudo, sehingga Anda tidak memberikan hak root penuh. Anda dapat mengaturnya sehingga pengguna hanya dapat menjalankan perintah yang telah disepakati sebelumnya, dengan argumen yang telah disepakati sebelumnya.

  • Anda juga dapat menggunakan virtualisasi untuk membatasi root:

    • cgroups, namespaces, chroot dll (buruh pelabuhan melakukan ini)
    • Xen
    • Virtualbox
  • Lihat juga etckeeper: revisi alat ini mengontrol/etc direktori, dan menyinkronkannya dengan apt. Secara default tidak aman, instalasi jahat dapat menyabotnya, tetapi Anda juga bisa membuatnya untuk mendorong perubahan ke repositori cadangan berdinding api.

  • Penggunaan kontrol revisi secara umum, dengan repositori cadangan berdinding api. Ini membantu dengan kerusakan tidak disengaja, disengaja dan kegagalan perangkat keras.


Repositori cadangan yang dipasangi firewall dapat berada di mesin yang berbeda, di internet, atau mesin virtual yang berbeda (atau sejumlah mesin virtual).

ctrl-alt-delor
sumber
8

Untuk perangkat lunak seperti APT , yang dalam operasi normal memerlukan akses ke hampir semua sistem, pembatasan itu bermasalah. Bahkan jika Anda mencegahnya mengakses bagian-bagian tertentu dari sistem, kemungkinan besar ada lebih dari cukup kemungkinan bagi distributor jahat untuk bekerja. Misalnya dengan mengganti pustaka atau hanya biner atau menambahkan perubahan konfigurasi berbahaya, yang akhirnya akan digunakan oleh root tidak dibatasi.

Bergantung pada seberapa banyak Anda akan menempatkan batasan, beberapa skrip instalasi dapat diharapkan rusak.

Untuk cara membatasi aplikasi dan pengguna, Anda dapat menulis AppArmor atau kebijakan SELinux. Kebijakan seperti itu yang mana yang lebih didukung tergantung pada distribusi Anda: Berbasis Debian memiliki dukungan yang lebih baik untuk AppArmor sementara distribusi berbasis Fedora / RHEL memungkinkan SELinux secara default.

Baik AppArmor dan SELinux bekerja pada kebijakan daftar putih , yang berisi aturan untuk mengizinkan (atau menolak) tindakan tertentu. Kebijakan diterapkan pada proses di eksekutif , pengguna yang sama dapat dibatasi ketika kebijakan diterapkan pada proses mereka saat masuk. Kebijakan yang dipikirkan dengan baik tidak dapat dielakkan (jika bug kernel tidak dipertimbangkan). Proses terbatas yang berjalan sebagai root (uid 0) dibatasi oleh kebijakan yang dikonfigurasi dan tidak dapat mengubahnya kecuali diizinkan secara eksplisit dalam kebijakan tersebut.

Bahasa kebijakan AppArmor mendefinisikan aturan penolakan , yang dapat digunakan untuk membuat kebijakan daftar hitam . Tempat yang baik untuk memulai dengan AppArmor adalah halaman manual AppArmor , wiki , dan mencari konfigurasi yang ada pada distribusi Anda di/etc/apparmor.d/ .

Banyak bahan administrasi dan pengembangan SELinux disediakan dalam SELinux wiki . Kebijakan referensi SELinux di -host di github.

sebasth
sumber
7

Saya tidak percaya tidak ada yang menyebutkan untuk menyematkan ...

Beberapa tahun yang lalu, Microsoft merilis tambalan yang memecahkan mesin Windows 10 dari berbicara dengan Pengendali Domain Samba NT4 lama kami. Ketika masalah ditemukan, kami menyematkan paket Samba agar tetap pada versi saat ini, dan aptmasih berfungsi dengan benar.

Debian Walkthrough lengkap menjelaskan proses dengan baik:

Di /etc/apt/preferences(atau file baru di bawah /etc/apt/preferences.d/), tambahkan beberapa teks untuk menentukan paket dan versi mana:

Package: samba
Pin: release v=3.6.6-6+deb7u7
Pin-Priority: 900

Periksa dokumentasi untuk sintaks yang tepat, tetapi ini adalah cara cepat dan kotor kami menyematkan versi paket. Root bisa mem bypassnya, seperti yang biasa dilakukan root, tetapi ini memecahkan masalah manajer paket yang mencoba memutakhirkan paket secara otomatis pada Anda.

CATATAN: Jawaban ini dengan asumsi Anda memiliki masalah XY

Luke Kanada REINSTATE MONICA
sumber
Saya telah menjawab sejumlah masalah XY sendiri di askubuntu. Namun, apt hanyalah sebuah contoh dan itulah yang menuntun saya pada ide tersebut. Saya lebih tertarik pada aspek "kekuasaan-korup-dan-mutlak-kekuasaan-korup-mutlak" dari semuanya. Kekuatan penuh dan absolut atas sistem saya sendiri adalah apa yang membuat saya ke linux di tempat pertama. Menyadari bahwa kekuatan saya tidak selalu absolut atas root adalah agak mengganggu; ide tentang kekuasaan absolut sangat menarik.
mchid
Juga, saya kira itu sedikit masalah XY tapi Y di sini adalah "bagaimana cara saya menolak izin untuk melakukan root ketika root adalah superuser?"
mchid
1
@ mchid ini bukan tentang menolak izin untuk melakukan root, tetapi menolak sesuatu untuk program yang berjalan sebagai root.
John Keates
6

Ini sebenarnya cukup sederhana.

Root adalah "pengguna super super" Anda

Buat akun yang disebut "admin" dan berikan dia semua izin root kecuali yang Anda tidak inginkan.

Kemudian buat pengguna bernama bob, dan biarkan dia "menjadi admin". Dengan menggunakan su atau bahkan sudo.

Sekarang Anda memiliki pengguna normal (bob) pengguna super yang dapat melakukan hal-hal admin (admin) dan pengguna super super (root).

Jika Anda ingin mengubah nama "root" menjadi sesuatu yang lain, Anda bahkan dapat melakukannya. Secara teknis, hanya id pengguna (0) yang penting.

kapas
sumber
Jika saya memiliki pengguna normal (bob), pengguna super yang dapat melakukan hal-hal admin (admin), dan pengguna super super (root), tidak akan root masih melakukan semua hal admin dengan proses latar belakang, cronjobs, dan hal-hal lain sebagai id pengguna (0)?
mchid
tidak jika Anda tidak menginginkannya. Sebagian besar layanan memungkinkan Anda memilih pekerjaan yang dilakukan pengguna. Anda dapat mengaturnya sehingga pengguna admin yang menjalankan proses. Ada beberapa pengecualian, tetapi tidak banyak.
coteyr
Bukankah saya harus melalui dan mengatur semua proses itu secara individual?
mchid
3
Itulah yang terjadi ketika Anda mencoba untuk melanggar konvensi standar. Saya pikir Anda perlu lebih memahami bagaimana dan mengapa sistem perizinan di lingkungan * nix.
Shauna
2
Saya setuju dengan Shauna, Anda tampaknya tidak memiliki pemahaman mendasar tentang sistem izin * nix. Ini sangat kuat, tetapi tidak seperti windows.
coteyr
3

Jika yang Anda inginkan hanya untuk mencegah file tertentu tidak diinstal, maka membatasi izin root bukanlah cara untuk melakukan hal ini. Perlu dicatat juga bahwa jawaban konvensional (file yang tidak dapat diubah atau LSM) tidak akan berfungsi untuk kasus penggunaan khusus Anda, seperti APT (dan sebagian besar manajer paket lainnya), akan memberikan jaminan jika mereka tidak dapat menginstal file.

Pertanyaan sesungguhnya yang ingin Anda tanyakan adalah:

Apakah ada cara untuk mencegah APT dari menginstal file tertentu?

Itu adalah sesuatu yang sangat berbeda dari apa yang Anda tanyakan di berbagai tingkatan.

Sekarang, sehubungan dengan pertanyaan itu, saya sendiri tidak 100% yakin, tetapi saya tahu sejumlah manajer paket lain memiliki opsi untuk mencegah instalasi file tertentu (misalnya, sistem Portage Gentoo memiliki opsi INSTALL_MASK= , yang sebenarnya menerima shell Pola pencocokan-gaya hal untuk tidak menginstal). Saya akan lebih dari berani bertaruh bahwa opsi seperti itu ada untuk APT (atau mungkin dpkg itu sendiri).

Austin Hemmelgarn
sumber
Sungguh, "Apakah ada cara untuk mencegah APT dari menginstal file tertentu?" bukan pertanyaan saya; ini hanya sebuah contoh dan apa yang membawa pertanyaan itu ke pikiran saya. Firefox baru dikirimkan dengan addons dan menginstal file-file ini bahkan setelah pengguna menghapusnya dengan pembaruan baru. Ini sebenarnya bukan masalah; inilah yang membuat saya sadar bahwa saya ingin lebih mengontrol sistem saya. Namun, saya menghargai logika Anda di sini karena saya sendiri telah menjawab beberapa pertanyaan dengan cara ini, terima kasih atas masukannya.
mchid
dpkg-divert melakukan ini: unix.stackexchange.com/a/157896/70847
mchid
1

Letakkan salinan cadangan di tempat yang aman. Setelah menginstal / memperbarui, segera ganti file tertentu dari cadangan itu. Dengan demikian, tidak ada kesalahan untuk mengacaukan instalasi tetapi Anda masih mendapatkan kembali file yang ingin Anda simpan.

WGroleau
sumber
1

Bekerja dari drive yang terpasang

Perhatikan bahwa ini sebagian besar merupakan jawaban konseptual, tetapi saya pikir ini harus bekerja dan semangat dengan apa yang ingin Anda capai.

Biarkan sistem X menjadi sistem kerja Anda, dan sistem Y sistem lain yang Anda kendalikan

  1. Pasang direktori dari Y sebagai drive di X
  2. Siapkan hak sedemikian rupa sehingga pengguna root X memiliki hak untuk semua yang ada di drive terpasang ini, dengan beberapa pengecualian

Sekarang Anda memiliki 'root kerja' yang dapat melakukan hampir semua hal, dan Anda memiliki 'root super', akun root sebenarnya dari sistem Y, yang benar-benar dapat melakukan semuanya.

Dennis Jaheruddin
sumber
Saya suka ide itu, meskipun, saya ingin melakukan ini pada sistem yang sedang berjalan.
mchid
1

Anda dapat menjalankan hypervisor tipe-1 seperti Xen hypervisor & membuat hosting OS biasa Anda sebagai tamu tervirtualisasi. Hypervisor mengontrol OS tamu virtual pada tingkat "lebih dalam" dari root karena memiliki kontrol atas perangkat keras (virtual) tempat OS tamu berjalan.

Anda dapat memprogram hypervisor untuk memanipulasi OS tamu dengan berbagai cara, termasuk mengubah izin, membuat & menerapkan cadangan, mengaitkan perubahan atau instruksi tertentu di OS tamu untuk menyuntikkan fungsionalitas tambahan, validasi, dll. Itu akan menjadi cara yang valid dan berpotensi bermanfaat untuk mengimplementasikan sistem tipe unix dengan "pengguna" (sebenarnya fungsi dari hypervisor) untuk "melakukan hal-hal yang bahkan root tidak dapat melakukannya"

Namun saya merasakan bahwa pendekatan ini mungkin berlebihan

Nathan Smith
sumber
Bagaimana hypervisor mencegah pengguna dengan izin root dari melakukan apa pun yang mereka ingin lakukan di VM tamu?
fpmurphy
Jawaban ini dimulai dengan baik, tetapi kemudian secara tata bahasa tersesat (kemudian membaca dengan cara yang salah, atau setidaknya ambigu). Saya melakukan perbaikan.
ctrl-alt-delor
1
@ fpmurphy1 hypervisor dapat menghubungkan panggilan sistem, menerapkan kebijakan, dll. untuk menegakkan pembatasan sewenang-wenang pada pengguna root atau bagian lain dari OS tamu. Mungkin jawaban saya tidak baik karena ini terlalu banyak pekerjaan kecuali Anda punya kasus penggunaan perusahaan nyata atau sesuatu ...
Nathan Smith
@ ctrl-alt-delor Terima kasih atas perbaikan Anda, tetapi saya rasa tata bahasa bukanlah masalahnya. Saya mengklarifikasi apa yang ingin saya katakan, & saya menghargai umpan balik bahwa pikiran saya tidak jelas pada awalnya
Nathan Smith
1
@ fpmurphy1 di dalam tamu yang Anda miliki root penuh. Namun itu tidak sama dengan root pada host. Oleh karena itu lebih rendah daripada root host. Docker akan memungkinkan hal-hal menjadi lebih terintegrasi, tetapi tetap menempatkan batasan pada root.
ctrl-alt-delor
1

Lihatlah cgroups dan ruang nama Linux sebagai metode alternatif untuk mencapai jenis tujuan ini, serta alat-alat yang didasarkan pada mereka seperti Docker dan lxd .

Alat-alat ini memungkinkan Anda untuk, antara lain, membatasi bagian mana dari sistem file yang dapat dilihat oleh proses "root", membatasi proses mana yang terlihat, dan hanya memberikan kemampuan tertentu kepada pengguna "root".

smw
sumber
0

UNINSTALL sudo

Bagaimana menguninstall sudodan symlink /bin/suke /bin/false? Pasangan itu dengan memastikan bahwa roottidak bisa masuk viassh dan Anda telah mengunci sistem.

Itu membuat root Super * Super User, dan semua orang di bawahnya.

Untuk file yang diganti selama pembaruan, jangan lakukan pembaruan apa pun. Lebih realistis lagi, ubah izin file ke 440atau lebih 444sehingga tidak dapat ditulis. Atau menempatkan mereka di repositori git sehingga jika mereka ditimpa, itu dapat dikembalikan.

pengguna176717
sumber
Anda lihat, saya masih ingin melakukan pembaruan dan saya masih ingin melakukan root hampir semua hal yang biasanya dilakukan root. Namun, saya ingin bisa mengatakan untuk me-root "hei jangan lakukan itu" atau "tidak, kamu tidak bisa melakukan itu" seperti otoritas orang tua yang bisa lakukan untuk keturunannya. Seperti sekarang, Root seperti otoritas orang tua di sistem saya dan semua anak kecil mengatakan "ibu boleh?" ketika mereka menggunakan sudo. Ini baik Namun, hampir setiap orang di planet ini adalah keturunan seseorang. Sepertinya beberapa jawaban di sini adalah seperti anak balita akan berada di hadapan kesadaran diri ketika mereka tidak menyadari
mchid
. . . bahwa nenek dan kakek adalah ibu dan ayah dari ibu dan ayah. Saya ingin meminta kakek tinggal di sistem saya karena, saat ini, root adalah ayah dari rumah dan kakek dapat memberitahu ayah apa yang harus dilakukan karena kakek adalah ayah ayah :)
mchid
Sepertinya Anda telah menambahkan terlalu banyak orang dengan kekuatan sudo. Sesuaikan sudoersfile sehingga hanya pengguna terpilih yang dapat melakukan sudo ke perintah yang sudah dipilih sebelumnya.
user176717
Saya hanya memiliki dua pengguna dalam file sudoers termasuk root. Saya mencoba menggunakan perumpamaan untuk menjelaskan bagaimana beberapa orang tampaknya tidak memahami pertanyaan saya dan apa yang ingin saya capai.
mchid
Sepertinya orang merasa tidak ada pengguna yang lebih tinggi dari root dengan cara yang sama seperti anak yang sangat muda merasa bahwa ayah dan ibu mereka tidak dapat memiliki orang tua. Juga, saya tidak downvote.
mchid