Geçersiz '/ etc / sudoers' dosyası nasıl değiştirilir?

205

Geçersiz bir sudoers dosyasını nasıl düzenlerim? Aşağıdan hata veriyor ve düzeltmek için tekrar düzenlememe izin vermiyor.

İşte ne oluyor:

$ sudo visudo

>>> /etc/sudoers: syntax error near line 28 <<<
sudo: parse error in /etc/sudoers near line 28
sudo: no valid sudoers sources found, quitting
    
sordu YumYumYum 30.10.2011 20:15

12 cevap

316

Modern bir Ubuntu sistemde (ve diğer birçok GNU / Linux dağıtımında), sudoers bozuk bir dosyanın düzeltilmesi gerçekten oldukça kolaydır ve canlı CD veya makineye fiziksel erişim kullanarak yeniden başlatma gerektirmez.

Bunu SSH ile yapmak için, makineye giriş yapın ve pkexec visudo komutunu çalıştırın. Makineye fiziksel erişiminiz varsa, SSH gerekli değildir; Sadece bir Terminal penceresi açın ve pkexec komutunu çalıştırın.

Sizde (veya başka bir kullanıcı) PolicyKit ile root gibi programlar çalıştırma yetkisine sahip olduğunuza göre, şifrenizi girebilir ve sonra visudo 'si root olarak çalıştırır ve /etc/sudoers ' sini düzeltebilirsiniz. .

Yapılandırma dosyalarından birini /etc/sudoers.d dosyasında (bu durumda yaygın olmayan ancak mümkün olan) düzenlemeniz gerekiyorsa, pkexec visudo -f /etc/sudoers.d/filename kullanın.

Sorunu gidermek için ek sistem yönetimi komutlarını root olarak yapmanız gereken ilgili bir durumunuz varsa (bu durumda yaygın olmayan, ancak diğerlerinde de yaygın olan), pkexec bash ile etkileşimli bir kök kabuğu başlatabilirsiniz. Genel olarak, sudo ile çalıştırdığınız grafik olmayan komutlar bunun yerine pkexec ile çalıştırılabilir.

(PolicyKit ile programları root olarak çalıştırmaya yetkili sistemde birden fazla kullanıcı hesabı varsa, bu işlemlerden herhangi biri için, hangisini kullanmak istediğinizi sormanız istenir. şifreniz için.)

Bu işe yaramazsa - örneğin, PolicyKit aracılığıyla programları root olarak çalıştırmak için yetkilendirilmiş hiçbir kullanıcı yoksa - sonra Ubuntu canlı CD'sinden (muhtemelen Ubuntu'yu yüklemek için kullandığınız CD gibi) önyükleme yapın ve dosya sistemini yüklü sistem. Bunu, bölümlerinizi görüntülemek için sudo parted -l çalıştırarak yapabilirsiniz. Muhtemelen bir ext4 bölümü vardır ve bu da kök dosya sistemidir.

Kurulu Ubuntu sisteminin kök dosya sisteminin / dev / sda1 üzerinde olduğunu varsayalım. Daha sonra sudo mount /dev/sda1 /mnt ile yükleyebilirsiniz. Ardından, kurulu sistemin sudoers dosyasını sudo nano -w /mnt/etc/sudoers ile düzenleyebilirsiniz. Veya daha da iyisi,

ile düzenleyebilirsiniz.
sudo visudo -f /mnt/etc/sudoers

(bu, sudoers dosyasını yanlış sözdizimi ile kaydetmenizi engeller.)

    
verilen cevap Eliah Kagan 30.10.2011 20:45
44

Sudoers dosyanızı düzenlemek için her zaman visudo kullanın, hiçbir zaman doğrudan kendiniz düzenlemeyin. Doğrulamadıkça diske kaydetmenizi önler.

    
verilen cevap Caesium 20.11.2011 18:08
20

Girin:

pkexec visudo

Sonra son satırı değiştir

#includedir /etc/sudoers

Kime:

#includedir /etc/sudoers.d

Sorunu çözmelisin.

    
verilen cevap Andrej Burcev 21.02.2013 19:23
10

Benden başka birisi pkexec içermediyse veya vi, visudo, nano ya da sudoers dosyasını değiştirmek için başka bir editör çalıştıramadıysa bu işlemden emin olabilirsiniz. Bununla kurtarıldım:

  • reboot
  • kurtarma modu seçeneği için önyükleme yaparken kaydırma tuşunu basılı tutun (girin)
  • komut satırını root olarak girin (grup menüsünde ikinci seçenek)
  • rw için önyükleme aygıtını yeniden çalıştırın ve kullanıcı için yürütme işlemini gerçekleştirin ve dosyayı düzenleyin

    mount -n -o remount,rw /
    chmod u+x /etc/sudoers
    nano /etc/sudoers
    

bu hatayı düzeltin ve mutlu olun:)

    
verilen cevap Kresimir Pendic 20.10.2014 23:40
5

Yanlış bir şey yok #include sudoer.d #include sudoer.d kaldırılırken herhangi bir fark olmaz.

Ancak, herhangi bir sözdizimi hatasının bulunmadığından emin olun. Aynı sorunu yaşadım ve düzeltmek için saatler harcadım ve sadece sözdizimi hataları olduğunu anladım. Kılavuza bakın ve doğru yapın.

Örneğin Kullanıcı adınızı söyleyin: dolly Yanlış olan aşağıdakileri kullandım

 dolly ALL = (ALL) ALL NO PASSWD: ALL

doğru sözdizimi

dolly ALL = (ALL) ALL //give permission to everything, not good

veya

dolly ALL=(ALL) NOPASSWD:/usr/bin/thurderbird //good, give specific permission

Bunun yardımcı olacağını umarım

    
verilen cevap Thusitha Nuwan 03.07.2012 01:15
5

Sudoers dosyanızı karıştırdıysanız: İhtiyaç duyacaksınız:

  • Kurtarma moduna yeniden başlat (önyükleme sırasında vurmak, grubun ekranındaki kurtarma modu seçeneğini belirleyin)
  • 'Ağa bağlanmayı etkinleştir' seçeneğini belirtin (dosya sisteminizi okuyamıyorsanız salt okunur olarak monte edilir.)
  • 'Kök kutusuna git' seçeneğini göz önünde bulundurun
  • visudo çalıştır, dosyanızı düzelt
  • Normal grup seçeneği ile yeniden başlat

kaynak: - İşte

    
verilen cevap streak 14.12.2012 11:59
3

Kurtarma modunu çalıştırdıktan sonra şunu yazın

chown -R root:root /etc/sudoers.d
chmod u=rwx,g=rx,o=rx /etc/sudoers.d/
chmod u=r,g=r,o= /etc/sudoers.d/*

sadece grup ve kullanıcı kökü okumaya devam etmelidir

    
verilen cevap kosaidpo 20.11.2011 18:11
2

Önyükleme girdinizi grubun içinde de düzenleyebilirsiniz.

Sadece bilgisayarınızı yeniden başlatın ve grubun gösterilmesini bekleyin. Sonra düzenlemek için "Ubuntu" girişindeki "e" ye basın.

"linux=" veya "kernel=" ile bir satır arayın ve bu satırın sonuna "tek bir" ekleyin.

Sonra geçici olarak değiştirilmiş önyükleme girişini başlatmak için F10 tuşuna basın. Bu size kök hakları olan bir kabuk (GUI'siz) verir ve sudoers dosyasını s.th. ile düzenleyebilirsiniz. nano / etc / sudoers gibi önceki durumuna geri döndü.

Ardından yeniden başlat ve bitir.

    
verilen cevap Markus Ressel 13.01.2013 05:41
2

Ayrıca, tty konsolu üzerinde Ctrl + Fn ( Fn 1'den 6'ya kadar) ile root olarak da giriş yapabilirsiniz ve% çalıştırın co_de%.

    
verilen cevap magisterludi 09.03.2013 08:12
2
pkexec visudo

sonra hatalarınızı geri alın

    
verilen cevap Bhavesh Gabani 01.01.2014 09:23
0

Hatayı buldum. Varsayılan /etc/sudoers dosyasının son iki satırındadır. / Etc / sudoers dosyasının sonuna visudo ile aşağıdaki girdileri kaldırın.

#includedir /etc/sudoers.d
    
verilen cevap George Van Tuyl 23.02.2012 22:57
0

Bir VirtualBox'ta çalışan Ubuntu 16.04'te (fark yaratmamalı), yukarıdaki yöntemler benim için çalışmadı (dosyanın sonundaki geçersiz satır). Çalışma neydi:

  1. VirtualBox'ı yeniden başlat
  2. Kullanıcı adı ve soyadı sorana kadar normal şekilde önyükleme yapsın. konsoldaki şifre
  3. Normalde kullanıcı adınızla giriş yapın
  4. Ardından konsolda bittiğinde (kutunuz bir GUI'ye önyükleme yapmadığında), su - komutunu verin ve ardından kendi kullanıcı adınızın parolasını verin.
  5. [email protected]:~# öğesi çok bozuk veya boş değilse, şimdi /etc/sudoers isteminde sona ermelidir. Bu durumda ne olacağından emin değilim.
  6. Ardından, visudo dosyasını çalıştırabilir ve dosyayı düzeltebilirsiniz.
  7. Ardından Ctrl + X ve değiştirilen arabelleği kaydettirir. % Co_de% ve Y tuşlarına basın
  8. Kutuyu yeniden başlat ve şimdi çalışmalı.

Enter öğesinin boş veya bir şey eksik olması durumunda ve bunu düzenleyebiliyorsanız, işte benimki içeriği:

Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

root ALL=(ALL:ALL) ALL

%admin ALL=(ALL) ALL

%sudo ALL=(ALL:ALL) ALL
    
verilen cevap Juha Untinen 14.08.2018 11:40

Etiketlerdeki diğer soruları oku