Sistem yapılandırma dosyalarını düzenlemek için nasıl izin alabilirim?


47

Kök sistemindeki config dosyalarını düzenleme ve kaydetme gibi görünmüyorum (örneğin:) /etc/dhcp/dhcpd.config; sadece "izin reddedildi" yazıyor veya kaydetme seçeneği metin editöründe engelleniyor.

Kök kullanıcı olduğumdan eminim ama nasıl emin olabilirim? Root kullanıcısıysam, bunu nasıl düzeltebilirim?

Yanıtlar:


42

Hangi metin editörünü kullanıyorsunuz? Kök kullanıcıysanız ve şifreyi biliyorsanız, aşağıdakilerden birini deneyin:

  • sudoedit /etc/dhcp/dhcpd.configTerminal tabanlı bir düzenleyici kullanıyorsanız nanoveya bir sunucuya ekliyorsanız.
  • gksudo <text editor here> /etc/dhcp/dhcpd.config GUI tabanlı bir düzenleyici kullanıyorsanız, gedit

Her iki durumda da, istendiğinde önce kök şifrenizi girmeniz gerekir.

Ubuntu 14.04'ten itibaren gksudovarsayılan olarak yüklenmez. gksuPaketi almak için (Yazılım Merkezi'nden veya aracılığıyla sudo apt-get install gksu) paketi kurmanız gerekecektir .

Ubuntu 17.10'da Wayland, geleneksel X sunucusu yerine varsayılandır ve grafiksel editörlerin root olarak çalıştırılması zordur. Bkz neden yapmıyorsun gksu / gksudo veya Wayland ile sudo çalışma ile grafiksel uygulamanın başlatılmasını? detaylar için.

Ubuntu 18.04’te gksudoresmi depolarda mevcut değildir. Kullanım sudo -H <text editor>yerine veya protokol :admin://

gedit admin:///etc/dhcp/dhcpd.config

15

Bir terminal kullanmak istemiyorsanız, bir GUI programını root olarak çalıştırabilirsiniz (bu örnek Gedit içindir):

  1. Çalıştır diyalog penceresini açmak için Alt+ F2tuşuna basın .
  2. Tip gksudo(GUI tarafından görüntülenen adından farklı olabilir) programın yürütülebilir adı gelecek. Örneğin:

    gksudo gedit
    
  3. Hit Enter.

10

Kökün alacağı bir durum düşünemiyorum permission denied.

12.04'te şöyle yapabilirsiniz: alt+ f2ve bunun gibi gksudogörünen kutuya şunu girin :

F2 diyaloğu

Bunun gibi bir kutu alıp girin geditve tıklayın ok:

Çalıştır iletişim kutusuna gedit yazın

Tıklayın Open:

Sekmeyi gedit içinde aç

Sadece dosyaya göz atın:

dosya aç diyalog

Bitti

Uyarı: Bir nedenden dolayı bir süper kullanıcı / kök var. Yanlışlıkla önemli bir şeye yanlışlıkla veya kötü bir şey yapmamanız için. Kök olarak düzenlediğiniz şeyin, düzenlemek istediğiniz doğru dosya olduğuna ve sözdiziminizin mükemmel olmasına son derece dikkat etmelisiniz. Düzenlemek için başka araçlar varsa, bunları kullanmanız önerilir. Örneğin , el ile düzenlemek yerine visudo terminal komutunu kullanın /etc/sudoers.

Berbat olabilecek bazı dosyaların kurtarılması kolaydır. Diğerleri göreceli olarak karmaşıktır veya kurtarma konsolu ve çok sayıda komut satırı kullanmanız gerekir.

Evet kurtarma konsolu komut satırı bile biraz daha bir korkunç görünüyor bu . Sadece dikkatli ol.


Bunu 13.04 ve daha yeni sürümlerle güncellemeniz gerekebilir. Gksu / gksudo ile ilgili bazı şeyler değişti (cevabınız için geçerli olup olmadığından emin değil).
Seth

Anladığım kadarıyla sudo şimdi DISPLAY çevre değişkenlerini sihirli bir şekilde dışa aktarıyor ve gksu / gksudo gitti ya da gidiyor. Yine de kontrol etmedim.
RobotHumans

rootdosya kullanılarak değiştirilemezse ayarlanmışsa chattrveya bazen disk salt okunursa izin verilmez .
Chai T. Rex

6

Mevcut kabuğunuzun root olarak birkaç farklı şekilde çalışıp çalışmadığını test edebilirsiniz.

~/ > whoami
paul
~/ > sudo whoami
root
~/ > id
uid=1000(paul) gid=1000(paul) groups=1000(devs),4(adm),20(dialout),24(cdrom),…
~/ > sudo id
uid=0(root) gid=0(root) group=0(root)

Diğer cevaplar kök ayrıcalığına yükselmek için iyi yollar sunar, bu yüzden bunları tekrarlamayacağım. Varsayarsak olan kök ve hala dosyayı düzenleyemezsiniz /etc/dhcp/dhcpd.config- o zaman çok büyük olasılıkla birisi veya bazı program kullandı chattrdosya değişmez yapmak için programı.

Gönderen chattr manuel sayfa :

'İ' özelliğine sahip bir dosya değiştirilemez: silinemez veya yeniden adlandırılamaz, bu dosyaya bağlantı oluşturulamaz ve dosyaya veri yazılamaz. Bu özelliği yalnızca süper kullanıcı veya CAP_LINUX_IMMUTABLEözelliğe sahip bir işlem ayarlayabilir veya silebilir.

Kullanarak öğrenebilirsiniz lsattr

lsattr /etc/dhcp/dhcpd.config

Eğer gerçekten değişmez ise, bunu şu şekilde kapatabilirsiniz:

chattr -i /etc/dhcp/dhcpd.config

3

Eğer kullanıyorsanız Ubuntu 17.04 daha yüksek veya kullanılması önerilir GVFS yönetici arka uç . Metin Düzenleyicisi veya Dosyalar uygulamalarıadmin:// gibi bir uygulamada açmak istediğiniz tam dosya yolunun önüne ekleyin .

Örneğin, önyükleme ayarlarını değiştirmek için

admin:///etc/default/grub

Varsayılan Wayland ile Ubuntu 17.10 kullanan vardır, varsa sudove gksuburada eski cevapta belirtildiği gibi olacak değil iş.


2

Favori Metin Düzenleyicinizi Kullanın

Ortam değişkeni 1 üzerinden favori veya grafik metin editörüyle sudo -etakma adını kullanabilirsiniz :sudoeditVISUAL

VISUAL=gedit sudo -e /path/to/some-config-file.cfg

hangi eşdeğer

VISUAL=gedit sudoedit /path/to/some-config-file.cfg

Elbette, örneğin , veya leafpad, istediğiniz herhangi bir editörü kullanabilirsiniz .katesubl

Bazı editör , şu anda çalışıyor olsa bile, her zaman yeni bir örneği başlatmak için bir komut satırı seçeneği sunar . Yana sudoediteditör süreci için bekler Düzenlenen dosyaya değişiklikleri uygulamak için sonlandırmak için çalıştırmakta, aynı Editör diğer örneklerini varsa, bu gerekli olabilir:

  • GEdit kullanımı için VISUAL='gedit -s' .
  • Kate'in kullanımı için VISUAL='kate -n'.

Avantajları

  • Ek ve / veya kullanımdan kaldırılmış uygulamalar gerektirmez.
  • Gibi güvenlik politikası değişiklikleri gerektirmez pkexec (bunun için dosyaları düzenlemeniz gerekir… süper kullanıcı olarak, bu cevabın tam olarak çözülmesi gereken şey).
  • Potansiyel olarak güvenli olmayan uygulamaların yükseltilmiş ayrıcalıklarla yürütülmesini gerektirmez.
  • Geçerli kullanıcının uygulama yapılandırmasını kullanır ancak aşağıdaki gibi yapılandırma dosyası erişim izinlerini bozar. sudo -H .
  • Kullanıcı tarafından rootkabul edilebilir bir şekilde görünüp davranabilen kullanıcı uygulaması yapılandırma verilerine geri dönmez .

Dezavantajları

  • Kısa bir yeni komut öğrenmeniz gerekir.

1 EDITOR veya SUDO_EDITORçok çalışın ancak daha az öncelik edinin veya sırasıyla daha fazla uzmanlaşın. Detaylar için kılavuz sayfasına bakınız.


0

Kullanarak cp /etc/dhcp/dhcpd.config /$HOME/dhcpd.config.backup çalıştırıp güvende olmakgksu gedit /etc/dhcp/dhcpd.config

geditSeçtiğiniz editörle değiştirin

böyle bir istemi alacaksın

şifre istemi

Şifrenizi buraya girin.

Yeni bir pencere açılır ve yapılandırmanızı orada düzenleyebilirsiniz.

Bir şeyler ters giderse, onu ev klasöründeki yedekten geri yükleyebilirsin.

Linux'un izinleri işleme şekli nedeniyle "reddedildi" ifadesi alıyorsunuz.

$HOMEKlasördeki her şey kullanıcıya aittir, oysa hemen hemen her şey köke aittir.

/etc/dhcp/dhcpd.confErişmeye çalıştığınız dosya köküne ait ve çoğu dosyalarında /etc/güvenlik nedenleriyle varsayılan olarak root aittir.

Bu dosyayı hala izinlerinizi artırarak düzenleyebilirsiniz.

Bunu yapmak için birkaç yol vardır:

  • suanahtar kullanıcısı anlamına gelir kullanın . Herhangi bir özelliği olmadan, kök hesaba geçme komutu olarak işlev görür, ancak geçiş yaptığınız kullanıcının şifresini girmeniz gerekir ve kök, Ubuntu'da varsayılan olarak şifresi yoktur (kök hesabın etkin olarak devre dışı bırakılması) , root için bir şifre belirlemediğiniz sürece, bu önerilmez.

  • sudoyalnızca bir komut için izninizi yükselten kullanma . Bu genellikle yalnızca CLI metin düzenleyicileri vim, nanovb. Gibi komut satırı uygulamaları için kullanılır.

  • kullanarak gksuhangi yalnızca bir komut için izninizi yükseltir, ancak aksine sudobu tür gibi GUI metin düzenleyicileri gibi grafik programları için kullanılır gedit. Bir parolanın girilmesini kolaylaştırmak için grafiksel bir bilgi istemi kullanır.


0
sudo < editor > < filelocation >

Örneğin:

sudo -H gedit etc/dhcp/dhcpd.config
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.