Masaüstü nötr bir gksudo var mı?


17

Grafik olarak bir uygulamayı root olarak çalıştırmayı amaçlayan çeşitli masaüstü bilgisayarlar için çeşitli araçlar vardır. gksudo, kdesudo, empower, Vb ...

Peki ya herhangi bir Linux masaüstünde kullanılabilecek bir senaryo yazıyorsam? Bir xdg-sudoçeşit var mı ..? Masaüstü ortamında sudo erişimi elde etmek için bir standart mı?

Yanıtlar:


16

@ Takyonlar önerisi sonrasında, hakkında bir çok araştırma yaptım pkexecve harika !

  • Yaygın olarak kullanılan bir paket olan PolicyKit'in bir parçasıdır .
  • Ev sahibi ve sponsor freedesktop.org
  • Gnome , Unity , MATE , Tarçın , KDE , LXDE ve XFCE ve muhtemelen diğerlerinde varsayılan
  • D-Bus ile çalışır, bu yüzden iyi tanımlanmış bir protokol ile tamamen masaüstü nötrdür.
  • Birçok DE'de oturum açma ekranı, kapatma / yeniden başlatma, disk yönetimi (udisks / automount) ve benzeri birçok hizmette kullanılır .

Yani evet, tüm gereksinimleri karşılıyor ve sanırım bu bir "evrensel gksudo" olabileceği en yakın şey .

Bununla birlikte, pkexecPolicyKit'in komut satırı ön ucu. 2 temel çalışma modu vardır:

  • Basitçe olduğu gibi çalıştırın sudove güzel bir GUI istemi alırsınız:

    $ pkexec rm -rf /

pkexec GUI istemi

  • Veya uygulamanız için bir PolicyKit yetkilendirme dosyası oluşturun, bırakın /usr/share/polkit-1/rules.dve büyük ölçüde özelleştirme ve güvenlikle ilgili seçeneklere izin verin, örneğin sadece belirli eylemler için kök erişimi, diğerleri için şifre gerekmez, belirli yollarla sınırlı erişim Ayarlarınızı inanılmaz ayrıntılarla ince ayar yapabilirsiniz.

6

Daha genel bir yol bir "yardımcı program" yazmak olacaktır. Böyle bir program kullanıcıdan bir parola ister; Zenity'nin kurulu olduğundan eminseniz, bunu kullanabilirsiniz, aksi takdirde yardımcı programı Python'a veya GUI ile etkileşime girebilecek başka bir şey yazmanız gerekir.

("Askpass") ve (stdin) seçeneklerinin sudokılavuzunu okuyun .-A-S

Ve sudobetiğinizden çalıştırdığınızda , -Hsimüle etmek için (home) seçeneğine ihtiyacınız olduğunu unutmayın gksudo.

Bu yöntem iyi çalışır, ancak yardımcı programın hatasız olduğundan emin olmak için iyice test etmeniz gerekir.


1
Ayrıca programınızda geçen xauth jetonunu da ele almanız gerekir - ki bu önemsiz değildir.
symcbean

4

Hayır, kök (veya başka bir kullanıcının) ayrıcalıklarını almanın standart bir yolu yoktur.

Mümkün olduğunca çok sistemle uyumlu olmak istiyorsanız, hiçbir şekilde varsaymayın, kullanıcıya komut dosyanızı belirli bir kullanıcı olarak çalıştırması gerektiğini söyleyin. Daha sonra sistemi, betiğinizin uygun bir şekilde çalıştırılacağı şekilde yapılandırmak kullanıcıya / yöneticiye bağlıdır.

Su, sudo ve ConsoleKit gibi en yaygın kimlik doğrulama sistemlerinin nasıl kullanılacağına dair bazı önerilerde bulunmak hoş olacaktır.


2009'un başları için geçerli, ama şükür ki şimdi polkit(sadece PolicyKit) bir standart olarak kabul edilebilecek kadar yaygın.
MestreLion
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.