Vraag Hoe een ongeldig bestand '/ etc / sudoers' wijzigen?


Hoe bewerk ik een ongeldig sudoers-bestand? Het gooit onder foutmelding en ik kan het niet opnieuw bewerken om het te repareren.

Dit is wat er gebeurt:

$ 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

206
2017-10-30 19:15


oorsprong


grote vraag gezien deze pagina maakt die fout help.ubuntu.com/community/RootSudoTimeout


antwoorden:


Op een modern Ubuntu-systeem (en vele andere GNU / Linux-distributies), het herstellen van een beschadigd sudoers bestand is eigenlijk vrij eenvoudig, en vereist niet opnieuw opstarten, het gebruiken van een live CD, of fysieke toegang tot de machine.

Om dit via SSH te doen, logt u in op de machine en voert u de opdracht uit pkexec visudo. Als u fysieke toegang tot de machine hebt, is SSH niet nodig; open gewoon een Terminal-venster en voer dat uit pkexec opdracht.

Ervan uitgaande dat u (of een andere gebruiker) gemachtigd bent om programma's uit te voeren als root met PolicyKit kunt u uw wachtwoord invoeren en vervolgens uitvoeren visudo als root, en je kunt je herstellen /etc/sudoers.

Als u een van de configuratiebestanden in moet bewerken /etc/sudoers.d (wat in ongewoon in deze situatie, maar mogelijk), gebruik pkexec visudo -f /etc/sudoers.d/bestandsnaam.

Als u een gerelateerde situatie hebt waarbij u extra systeembeheeropdrachten als root moet uitvoeren om het probleem op te lossen (ook ongewoon in deze omstandigheid, maar gebruikelijk in andere), kunt u een interactieve rootshell starten met pkexec bash. Over het algemeen geldt voor elke niet-grafische opdracht waarmee u werkt sudo kan worden uitgevoerd met pkexec in plaats daarvan.

(Als er meer dan één gebruikersaccount op het systeem is geautoriseerd om programma's uit te voeren als root met PolicyKit en vervolgens voor elk van deze acties, wordt u gevraagd om te selecteren welke u wilt gebruiken voordat u om uw wachtwoord wordt gevraagd.)


Als dat niet werkt - bijvoorbeeld als er geen gebruikers zijn die gemachtigd zijn om programma's als root uit te voeren via PolicyKit - dan start je op vanaf een Ubuntu live CD (zoals de CD die je waarschijnlijk hebt gebruikt om Ubuntu te installeren) en mount je het bestandssysteem voor de geïnstalleerd systeem. Je kunt dit doen door te hardlopen sudo parted -l om je partities te bekijken - er is waarschijnlijk maar één ext4 partitie, en dat is het rootbestandssysteem.

Stel dat het rootbestandssysteem van het geïnstalleerde Ubuntu-systeem op / dev / sda1 staat. Dan zou je het kunnen monteren sudo mount /dev/sda1 /mnt. Vervolgens kunt u het sudoers-bestand van het geïnstalleerde systeem bewerken met sudo nano -w /mnt/etc/sudoers. Of, nog beter, u kunt het bewerken met

sudo visudo -f /mnt/etc/sudoers

(dit voorkomt dat u een sudoers-bestand met een onjuiste syntaxis opslaat).


317
2017-10-30 19:45



pkexec / usr / sbin / visudo werkte aan debian 7 - marinara
Kunnen ze ook niet gewoon opstarten in de herstelmodus? - Seth♦
HEILIGE KOE! Hartelijk bedankt! Ik heb mijn spek gered. Een bestand toegevoegd zoals gesuggereerd in etc / sudoers.d / map GEBRUIK VAN EEN GEWONE TEXT EDITOR (D-O-N-T__D-O__T-H-A-T !!!). Verloor alle vaardigheid om verhoogde bevoegdheden te krijgen, INCLUSIEF, bewerken van het aanstootgevende bestand. Dit hielp het bestand bewerken. Raar echter, ik moest eerst / etc / sudoers bewerken, dan vond het de fouten in het andere bestand en opende dat voor mij. ZELFS DE WEIRDER, de richtlijn in het bestand / etc / sudoers 'include /etc/sudoers.d' is becommentarieerd en bevat deze nog steeds. - Dennis
@Dennis Enigszins verwarrend, #include richtlijnen in sudoers bestanden worden speciaal behandeld; de leidinggevende # veroorzaakt niet dat de rest van de regel wordt geïnterpreteerd als een opmerking, in dat geval. Als man sudoers zegt: "Het hekje ('#') wordt gebruikt om een ​​opmerking aan te geven (tenzij het deel uitmaakt van een #include directive of tenzij ..." Zie ook visudo: #includeir sudoers.d (gearchiveerd vanuit lzone.de/blog). - Eliah Kagan
Mijn gebruiker is sudoer maar ik kreeg deze foutmelding: Fout bij het uitvoeren van de opdracht als een andere gebruiker: niet geautoriseerd - SuB


Gebruik altijd visudo om je sudoers-bestand te bewerken, nooit zelf bewerken. Het zal voorkomen dat je het opslaat op de harde schijf, tenzij het gevalideerd wordt.


44
2017-11-20 17:08



Achteraf is 20/20 - code_monk
Het zal rampspoed niet voorkomen. Het is gemakkelijk genoeg om jezelf geldig te ontkennen. - Joshua
Kan visudo door scritps worden gebruikt? Zo ja, hoe? - Lukas
Ik heb geen visudo geïnstalleerd. Dus deed ik pkexec vim. Vervolgens wordt de lijst met gebruikers weergegeven en wordt om een ​​wachtwoord gevraagd. Wanneer ik een wachtwoord geef, wordt de fout gegenereerd als "Fout bij het uitvoeren van de opdracht als een andere gebruiker: niet geautoriseerd". Help alstublieft - Shyamkkhadka


Typ in:

pkexec visudo

Verander dan de laatste regel

#includedir /etc/sudoers

Naar:

#includedir /etc/sudoers.d

Het zou je probleem moeten oplossen.


20
2018-02-21 18:23



Ik heb gemerkt dat het verwijderen van de leidende # van #includedir veroorzaakt syntaxisfouten, de # maakt deel uit van de richtlijn, althans op Ubuntu 12.10. - SAFX
Dat heeft me gewoon veel hoofdpijn bespaard. Heel erg bedankt :) - Nitroware
Ik heb geen visudo geïnstalleerd. Dus deed ik pkexec vim. Vervolgens wordt de lijst met gebruikers weergegeven en wordt om een ​​wachtwoord gevraagd. Wanneer ik een wachtwoord geef, wordt de fout gegenereerd als "Fout bij het uitvoeren van de opdracht als een andere gebruiker: niet geautoriseerd". Help alstublieft - Shyamkkhadka


als iemand anders zoals ik dat niet had gedaan pkexec is geïnstalleerd, of was niet in staat om vi, visudo, nano of een andere editor uit te voeren om het sudoers-bestand te wijzigen, je kunt er zeker van zijn met dit proces .. Ik was hiermee bewaard:

  • reboot
  • houd de Shift-toets ingedrukt tijdens het booten om een ​​optie te hebben voor de herstelmodus (voer deze in)
  • voer de commandoregel in als root (de tweede laatste optie in mijn grub-menu)
  • boot-apparaat opnieuw koppelen voor rw, en exec-rechten toepassen voor gebruiker en bestand bewerken

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

repareer die fout en wees blij :)


10
2017-10-20 21:40



Hoewel pkexec-oplossing voorgesteld door @ eliah-kagan eenvoudiger lijkt, is deze universeler. Op mijn machine bleek dat er geen pkexec was geïnstalleerd en natuurlijk kon ik het niet installeren omdat sudo apt-get install pkexec op de een of andere manier niet werkte. - running.t


Er is niets mis # include sudoer.d het verwijderen van #include sudoer.d maakt geen enkel verschil.

Maar zorg ervoor dat je geen syntaxisfouten hebt. Ik had hetzelfde probleem maar bracht uren door om het probleem op te lossen en ontdekte dat het syntaxisfouten zijn. Raadpleeg de handleiding en maak ze goed.

Bijvoorbeeld Zeg dat je gebruikersnaam is: dolly Ik gebruikte het volgende dat verkeerd is

 dolly ALL = (ALL) ALL NO PASSWD: ALL

juiste syntaxis is

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

of

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

ik hoop dat dit helpt


6
2017-07-02 23:15



Een betere aanpak dan ervoor zorgen dat je geen syntaxisfouten hebt, is altijd gebruiken visudo bij het bewerken van deze bestanden, wat ervoor zorgt dat je geen syntaxisfouten voor je hebt, voordat het bestand wordt gewijzigd. visudo is niet alleen voor bewerken /etc/sudoers--het zal ook bestanden aanmaken en bewerken in /etc/sudoers.d. Het werkt ook met elke gewenste teksteditor. Zien de manpage voor details. - Eliah Kagan
Wat betreft het geven van specifieke toestemming, houd er rekening mee dat dit alleen nuttig is voor zeer eenvoudige commando's / apps, omdat elke voldoende complexe app (inclusief thunderbird, die sowieso nooit als root moet worden uitgevoerd) geeft de gebruiker effectief volledige systeemtoegang wanneer het als root wordt uitgevoerd. Zelfs schijnbaar eenvoudige functionaliteit opent de deur naar volledige root-toegang. Een gebruiker die bijvoorbeeld een programma kan uitvoeren dat een bestand als root naar een willekeurige locatie kan opslaan, kan volledige roottoegang verkrijgen (ze kunnen hun eigen root-toegang installeren). /etc/sudoers, of als syntaxisbeperkingen dat voorkomen, kunnen ze die van henzelf installeren /etc/crontab). - Eliah Kagan


Als je je sudoers-bestand hebt verpest. Je moet:

  • Start opnieuw op in herstelmodus (druk op escape tijdens het opstarten, kies de herstelmodusoptie op het rups-scherm)
  • Kies de optie 'Enable networking' (als u dat niet doet, wordt uw bestandssysteem als alleen-lezen gemount. Wie wist dat)
  • Kies de optie 'Drop to root shell'
  • voer visudo uit, herstel je bestand
  • Start opnieuw op met normale gruboptie

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


5
2017-12-14 10:59



Hallo, verwijdert het de iptables, bestanden van het bestaande systeem? - Shyamkkhadka


voer herstelmodus uit en typ dit

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

alleen de groep en de gebruiker root moeten het privelege hebben gelezen


3
2017-11-20 17:11