it-swarm.dev

Jak upravit neplatný soubor '/ etc / sudoers'?

Jak upravím neplatný soubor sudoers? Vyvolá níže uvedenou chybu a neumožňuje mi ji znovu upravovat, abych ji opravil.

Tady je to, co se stane:

$ 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
249
user25165

K úpravě souboru sudoers vždy použijte visudo, nikdy jej přímo neupravujte. Zabráníte jeho uložení na disk, pokud to neprovede ověření.

58
Caesium

Vepište:

pkexec visudo

Poté změňte poslední řádek

#includedir /etc/sudoers

Na:

#includedir /etc/sudoers.d

To by mělo vyřešit váš problém.

28
Andrej Burcev

pokud někdo jiný jako já neměl pkexec nainstalován, nebo nebyl schopen spustit vi, visudo, nano nebo jakýkoli jiný editor pro změnu souboru sudoers, můžete si být tímto procesem jisti .. Byl jsem uložen s tím:

  • restartujte počítač
  • podržte klávesu Shift při zavádění, abyste měli možnost pro režim obnovy (zadejte ji)
  • zadejte příkazový řádek jako root (druhá poslední možnost v nabídce grub)
  • znovu připojte zaváděcí zařízení pro rw a aplikujte právo spuštění na uživatele a upravte soubor

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

opravit tu chybu a být šťastný :)

10
Kresimir Pendic

Pokud jste pokazili svůj soubor sudoers, budete muset:

  • Restartujte do režimu zotavení (během úniku stiskněte Escape, vyberte možnost režimu zotavení na obrazovce grub)
  • Vyberte možnost „Povolit síťování“ (pokud nemáte souborový systém, bude připojen pouze pro čtení. Kdo věděl)
  • Vyberte možnost 'Drop to root Shell'
  • spusťte visudo, opravte svůj soubor
  • Restartujte s normální volbou grub

zdroj: - http://mario.net.au/content/recover-etcsudoers-ubuntu-1204

6
streak

Není nic špatného #include sudoer.d odebrání #include sudoer.d nezmění nic.

Ujistěte se však, že nemáte žádné chyby syntaxe. Měl jsem stejný problém, ale strávil hodiny opravou a jen jsem zjistil, že jde o chyby syntaxe. Viz příručka a udělejte je správně.

Například řekněte, že vaše uživatelské jméno je: dolly Použil jsem následující, což je špatné

 dolly ALL = (ALL) ALL NO PASSWD: ALL

správná syntaxe je

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

nebo

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

snad to pomůže

5
Thusitha Nuwan

spusťte režim obnovy a poté zadejte tento

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/*

číst privelege by měla mít pouze skupina a uživatel root

3
kosaidpo

Můžete se také přihlásit jako root na konzole tty pomocí Ctrl+Fn (Fn od 1 do 6) a spusťte visudo.

2
magisterludi
pkexec visudo

pak se vrátí své chyby

2
Bhavesh Gabani

V Ubuntu 16.04 spuštěném na VirtualBoxu (nemělo by se to změnit), výše uvedené metody pro mě nefungovaly (neplatný řádek na konci souboru). Co fungovalo bylo:

  1. Restartujte VirtualBox
  2. Nechte systém běžet normálně, dokud si v konzoli nepožádá o své uživatelské jméno a heslo
  3. Přihlaste se obvykle pomocí svého uživatelského jména
  4. Když skončíte v konzole (za předpokladu, že se váš box nespustí do GUI), jednoduše zadejte příkaz su - a poté zadejte své vlastní uživatelské jméno.
  5. Nyní by mělo skončit za [email protected]:~# Výzva, pokud /etc/sudoers není příliš rozbité nebo prázdné. Nejste si jisti, co by se v tom případě stalo.
  6. Pak můžete jednoduše spustit visudo a soubor opravit.
  7. Pak Ctrl + X a zobrazí výzvu k uložení upravené vyrovnávací paměti. Stiskněte Y a Enter
  8. Restartujte pole a nyní by mělo fungovat.

Pokud vaše /etc/sudoers je něco prázdného nebo něco chybí a můžete ho upravit, pak je tu můj obsah:

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
1
Juha Untinen

Přidání tohoto pro novou vlnu Linuxů založených na WSL. Když jsem se zablokoval z mého WSL2 VM (Pengwin), který neměl pkexec a heslo root nebylo nastaveno), vyřešil jsem tento problém:

  • Otevřete Windows Powershell jako správce (klikněte pravým tlačítkem myši na „Spustit jako správce“)
  • Nastavit výchozího uživatele na VM jako root (protože nebude požadovat heslo) za tento postup :
<distro.exe> config --default-user root

Příklad:

ubuntu1804.exe config --default-user root 

nebo

pengwin.exe config --default-user root
  • Znovu spusťte distro.
  • Nyní byste měli být root a můžete vyřešit váš problém se Sudo.
  • Opakováním tohoto postupu nastavíte výchozího uživatele zpět na normální.
1
Jack Hamilton

Můžete také upravit svůj spouštěcí záznam v grubu.

Jednoduše restartujte počítač a počkejte, než se zobrazí grub. Poté stiskněte klávesu „e“ v položce „Ubuntu“ a upravte ji.

Hledejte řádek s "linux =" nebo "kernel =" a jednoduše přidejte "single" na konec tohoto řádku.

Stisknutím klávesy F10 spustíte tuto dočasně upravenou spouštěcí položku. Tím získáte Shell (bez GUI) s právy root a můžete upravovat soubor sudoers pomocí s.th. jako nano/etc/sudoers zpět do předchozího stavu.

Poté restartujte a je hotovo.

1
Markus Ressel

Existuje jednodušší řešení. Bez restartování, režimu obnovy nebo pkgexec (pkgexec nefungovalo a nemám ponětí, proč a jak bych ho měl použít), jednoduše udělejte:

su root # switch to root user, without using Sudo (which is broken at this point)
your_favorite_editor /etc/sudoers # e.g. nano

A pak stačí opravit chybu syntaxe!

0
rien333

Dobrá praxe: okno zálohovacího terminálu a spuštění Sudo su tam. Na jiném termianlu spusťte visudo nebo sudo vim/etc/sudoers. Pokud se něco pokazí, vraťte se na terminál a soubor opravte. Můžete se zeptat, proč ne jen spustit Sudo su před visudo v jednom terminálu? Funguje to také dobře, ale je zde vyšší riziko, že terminál zavřete, než to budete vědět.

0
biocyberman