Kullanıcılar neden grafiksel uygulamaları başlatmak için normal sudo kullanmıyorlar?


114

Topluluk "RootSudo" belgelerini okudum ve bu satırla ilgileniyorum:

Sen gerektiğini asla Root gibi grafiksel uygulamaları başlatmak için normal bir sudo kullanmak.

Neden? Fark ne? Lütfen normal bir masaüstü kullanıcısı olduğum için basit bir açıklama yapın.



Aslında, son zamanlarda MATLAB'ı / usr / local dizinine kurmakta zorlandım. Bu, / usr / local dizinine yazmak için gerekli olan kök ayrıcalıklarını gerektirdi, ancak yükleyiciyi bir şekilde gksu kullanarak çalıştırmak, kurulu programı root olmayan olarak çalıştırmayı imkansız hale getirdi. Yükleyiciyi sudo kullanarak çalıştırmak her şeyin yolunda gitmesine neden oldu.
Bib-

Yanıtlar:


129

Grafik uygulamalar genellikle ayarları ve kullanıcıya özel verileri, kullanıcının ana klasörünün içine yazılan konfigürasyon dosyalarında saklar . Kullanıcının ana klasörü olarak ne kullanmaları gerektiğini belirlemek için kullandıkları ana mekanizma uygulamaları HOME ortam değişkenidir . (Bunu kendiniz inceleyebilirsiniz echo $HOME).

Diyelim ki çalıştığınızı gedit(grafiksel bir metin editörü) root. Eğer kaçarsan sudo gedit, HOMEdoğru yönlendirmeye devam edecektir sizin programı çalışıyor olsa bile, ana dizine olarakroot . Sonuç olarak, geditkonfigürasyon dosyalarını yazacak kadarroot ev dizine. Bu bazen sonuçlanacaktır yapılandırma dosyaları olan içinde olunan tarafındanroot ve böylece size ulaşılmaz (daha sonra olarak değil kendin gibi programı çalıştırmak ve ne zaman root). Bu esas olarak, uygulamanın yeni bir yapılandırma dosyası oluşturması gerektiğinde gerçekleşir. Yeni oluşturulan dosyalar, varsayılan olarak, onları oluşturan kullanıcıya aittir (bu durumda rootsiz değilsiniz).

Bu, grafiksel uygulamaları sudodoğrudan değil, grafiksel bir ön uçla çalıştırmanızın ana nedenidir sudo. Ubuntu ve türevlerinin çoğunda (Xubuntu ve Lubuntu dahil), standart grafik ön uç gksu/gksudo . Kubuntu'da öyle kdesudo. ( Kullanılan masaüstü ortamına göre değişir .)

Eğer varsa istediğiniz kullanmak sudografiksel uygulama gibi çalıştırmak için doğrudan gedit, Çalıştırabileceğiniz:

sudo -H gedit

-HBayrak yapan sudodizi HOMEişaret etmek root(ki 'ın ev klasörü /root).

Bu hala .Xauthoritybir geçici klasöre kopyalayarak sahipliğini otomatik olarak ele almayacaktır (grafiksel sudoön uçların seninle ilgilendiği diğer şey budur ). Ancak .Xauthorityerişilmez olan nadir olayda, bunun olduğunu söyleyen bir hatayla karşılaşırsınız ve sonra sudo rm ~/.Xauthorityotomatik olarak yenilendiği için sorunu silerek sorunu giderebilirsiniz ( ). Bu nedenle, .Xauthoritysahiplik ve izinlerin korunması, yapılandırma dosyalarının sahipliğini ve izinlerini korumaktan daha az önemlidir.

rootSahiplerinin aksine .Xauthority, yapılandırma dosyaları sahip olunca root, sorunun ne olduğu her zaman açık değildir (grafik programlar genellikle çalışacak, ancak çok iyi çalışmayacak ve konsola yararlı hatalar çıkaracaktır). Ve bazen, özellikle de ev dizininizdeki bir veya daha fazla dosyanın sizden başka birinin size ait olmasını istediğiniz bir durumdaysanız , düzeltilmesi daha büyük bir güçlüktür (çünkü o zaman chown, tüm dosyalarınızı tekrar tekrar uygulayarak düzeltemezsiniz . kendinize dönün).

Bu nedenle, sudo(en azından olmadan -H) , uygulamanın iç işleyişine aşina olmadığınız ve herhangi bir yapılandırma dosyası yazmaya çalışmadığından emin olmadıkça, bir grafik uygulamasını çalıştırmak için kullanılmamalıdır .


Bu dosya kök tarafından sahipse, Giriş dizinimdeki tüm yapılandırma dosyalarının (veya herhangi bir dosyanın) sahibi olabilir miyim?
Nur

Varsayarsak @Nur vardır hayır evinizdeki dizindeki dosyaları istediğiniz herhangi bir başka kullanıcının sahip olması ya da (paylaşım için) herhangi bir diğer grup üye olmak istiyorum : Çalıştırabileceğiniz sudo chmod -R $USER:$USER ~Maalesef bu kriterler hep geçerli değildir. Grup sahibini korumanız gereken dosyalarınız varsa, çalıştırabilirsiniz sudo chmod -R $USER ~. Bu genellikle yeterlidir. (Dosyalarınız ana dizininizdeki başka bir kullanıcıya
aitse

1
@EliahKagan chmodAslında yapar mı ? Her zaman chownbunun yaptığını düşündüm . chmodbenim için hiç yapmadım.
Wyatt8740

2
@ Wyatt8740 Yukarıdaki yorumlarım chownyerine kesinlikle yazmam gerekirdi chmod. Bunun için üzgünüm - ve bunu gösterdiğiniz için teşekkürler!
Eliah Kagan

2
@TheQuark olarak sudo -H echo $HOME, Kabuk - değil kök olarak, senin kadar çalışan - gerçekleştirir parametre genişleme üzerine $HOME, yolunu elde senin ana dizine, sonra geçtiği için sudosırayla zaten genişletilmiş değeri için geçtiği, echoonu yazdırır. sudo -H printenv HOME, sudo -H bash -c 'echo $HOME've sudo -H sh -c 'echo $HOME'tümü yazdır /root. Bu kavramsal olarak - farklı bir mekanizma ile - nasıl x=a echo "$x"basıldığına a( xzaten değeri olmadıkça a) benzer.
Eliah Kagan


5

Eklenti için bir alternatif gksu nautilusve gksu geditkullanmaktır nautilus-admin. Nautilus ile dosyalara ve dizinlere göz atmanızı ve ardından root olarak (Yönetici) açmanızı sağlar.

Kurulum yalındır:

sudo apt install nautilus-admin

Artık, nautilus'tayken, yönetici olarak Edit (Ekstra) seçeneğine ek bir seçeneğiniz olacak:

nautilus admin.gif


gedit root, tercihlere izin vermediğinden

geditKök olarak çalıştırdığınızda , sekme durakları, sekmeleri boşluklara dönüştürme, yazı tipi adı, yazı tipi boyutu, satır kaydırma vb. İçin normal bir kullanıcı olarak ayarladığınız tercihleri ​​kullanamazsınız.

Bunu çözmek için betiği sgeditkullanıcı tercihlerini devralacak ve onları kök dizine uygulayacak şekilde yazdım : Kök geditimi kullanıcı gedit'in tercihleri ​​ile nasıl eşitlerim?

  • Kullanarak çağrı sgedit filename1 filename2 ...
  • Sekme durakları, yazı tipleri, satır sarma vb. İçin kullanıcının gedit ayarlarını alır.
  • sudo -HKök yetkilerini alırken dosya sahipliğini korumak için yükseltir .
  • En son sudozaman aşımına uğradıysa şifre ister .
  • Sudo'nun gedit ayarlarını alır
  • Kullanıcı ve sudo gedit ayarları arasındaki farkları karşılaştırır
  • Sadece farklara göre ayarlanan gsettings'i çalıştırır (174 set komutunu bir düzine veya daha azına indirger.
  • Aramalar geditterminal isteminde hemen yeniden ortaya çıkar, öyle ki, bir arka plan vazifesi olarak.
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.