Yönetici olmayan kullanıcıların paketleri apt veya rpm yoluyla yüklemesine izin verilsin mi?


13

Kök olmayan kullanıcıların paketleri apt veya rpm kullanarak sistem genelinde yüklemelerine izin vermek mümkün müdür?

Çalıştığım yer şu anda linux kutuları üzerinde eski bir kurulum var ve yöneticiler kullanıcılar için tüm kurulumları istek üzerine yapmak zorunda kalıyorlar, bu yüzden tüm kullanıcılara tam sudo hakları vermeyi düşünüyorlar. Bunun bariz güvenlik dezavantajları vardır. Bu yüzden normal kullanıcıların yazılım yüklemesine izin vermenin ve yükseltip kaldırmanın bir yolu olup olmadığını merak ediyorum?


4
Paketleri yükleme ayrıcalıkları verirseniz, kullanıcı tam olarak setuid-root shell içeren bir paket kurabileceğinden, tam yönetici hakları vermiş olursunuz.
camh

@camh hrm .. denetlenmiş bir deponuz olabilir ve kullanıcıların yeni depolar eklemesine izin veremezsiniz, değil mi? Yoksa apt .deb dosyalarından paketleri kurmanıza izin veriyor mu? Bir vetted repo muhtemelen uzun vadede daha fazla iş olacağını fark, bu daha kavramsal bir soru :)
naught101

1
apt-secure(8)diyor ki: "apt-get şu anda yalnızca imzasız arşivler için uyarıyor, gelecekteki sürümler, paketleri indirmeden önce tüm kaynakları doğrulamaya zorlayabilir". Bir saldırının ne kadar karmaşık olduğuna bağlı olarak, depo kaynağına bağlantıyı ele geçirmek ve güvenilir olmayan bir paket enjekte etmek mümkün olabilir. Ancak, daha fazla ayrıntı için bu kılavuz sayfasını okuyun. İplik modeliniz için yeterince güvenli bir çözümünüz olabilir.
camh


Yanıtlar:


23

İzin verilen komutları sudo ile belirtebilirsiniz, sınırsız erişime izin vermeniz gerekmez, ör.

username ALL = NOPASSWD : /usr/bin/apt-get , /usr/bin/aptitude

Bu kullanıcı adı çalışmasına izin verecek sudo apt-getve sudo aptitudeherhangi bir şifre olmadan ancak diğer komutları izin vermedi.

Ayrıca sudo'dan daha iyi bir kontrol düzeyi için PolicyKit ile birlikte packagekit kullanabilirsiniz .

Kullanıcıların paketleri kurmasına / kaldırmasına izin vermek bir risk olabilir. Sadece libc6, dpkg, rpm vb. Gibi gerekli yazılımları kaldırarak bir sistemi kolayca işlevsiz hale getirebilirler. Tanımlanmış arşivlerden keyfi yazılım yüklemek, saldırganların eski veya sömürülebilir yazılımlar yüklemelerine ve kök erişimi kazanmasına izin verebilir. Bence asıl soru çalışanlarınıza ne kadar güveniyorsunuz?

Elbette yönetici ekibiniz de kukla, şef gibi bir yapılandırma yönetim sistemi kullanmaya başlayabilir veya sisteminizi yönetmek için uzay yürüyüşüne bakabilir. Bu, sistemi merkezi bir sistemden yapılandırmalarına ve yönetmelerine olanak tanır.


Sorumu dışarıda bıraktım, ancak buna izin vererek ima edilen güvenlik azaltımı hakkında yorumlarınız var mı? Yani, paket depolarını değiştiremezsiniz, bu yüzden muhtemelen tam sudo erişimi elde edemezsiniz, ancak yetenekleri kullanarak herhangi bir dosyaya yazabilirsiniz (seçenekler> tercihler> "Eylemleri kaydedilecek dosya"). ciddi hasara neden olabilir. PolicyKit hakkında daha az eminim ...
naught101

1
@ naught101 ok güvenlik hakkında bazı yorumlar ekledim. Policykit olarak JFTR root erişimi sağlamıyor, sudo kullanmaktan daha az sorunlu olacak
Ulrich Dangel

Dpkg veya rpm'den bir kabuk çalıştırabileceğiniz yollar vardır. Örneğin: dpkg, çakışan bir yapılandırma dosyası değişikliği olduğunda, seçeneklerden biri durumu incelemek için bir kabuk başlattığında sorulur . Bu, sudo üzerinden çalıştırıldığında bir kabuk kök olarak başlatacaktır. Aynı şekilde, bir düzenleyiciyi araçtan çalıştırabiliyorsanız, çoğu düzenleyici bunların içinden rastgele kabuk komutları çalıştırmanıza izin verir (örneğin vi'daki! Komut).
David Gardner

@ naught101 Bu blogda anlatıldığı gibi bir SUID kabuğu içeren bir RPM aracılığıyla ayrıcalık yükselmesini test ediyorum: nosedookie.blogspot.com/2011/07/… Bir kabuk enjeksiyon senaryosunda, sudoer hesabının tehlikeye girdiği yerde bir kişi hafifletilebilir NOPASSWD'nin aksine bir parola girilmesini gerektirerek sudo üzerinden ayrıcalık yükseltme .
Matt

7

aptdcon

Man sayfalarından:

aptdcon: aptdaemon kullanarak, yazılım yükleme veya kaldırma gibi paket yönetimi görevlerini gerçekleştirmenize izin verir. Bu programı çalıştırmak için root olmanıza gerek yoktur.


1
Aptdcon'u çalıştırmak için root / sudo ayrıcalıklarına ihtiyacınız olmasa da, hemen ayrıcalıklı olmayan kullanıcılar için bir kimlik doğrulama iletişim kutusu başlatır - Ubuntu üzerinde test ettim. Ayrıcalıklı / yetkili bir kullanıcı değilseniz, bu paket eklemez / kaldırmaz.
adaçayı

1
Operasyonlarda çalışmazERROR: You are not allowed to perform this action. ('system-bus-name', {'name': ':1.716'}): org.debian.apt.install-or-remove-packages
JacopKane


1

Ben de böyle bir şey aradım, ama hiçbir şey ortaya çıkmadı, bu yüzden bu kolay çözüm "softwarechannels" kodladı:

https://github.com/alfem/softwarechannels

Yaygın (yönetici olmayan) kullanıcıların kısıtlı kataloglardan paketleri yüklemelerine izin vermek çok basit bir sistemdir.

Basit bir metin dosyasında 'kanalları' (paket gruplarını) tanımlayın ve kullanıcılarınıza yazılım mekanizmaları başlatma izni verin.

Yalnızca unix gruplarıyla eşleşen kanallardaki paketleri görürler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.