Android

Sudo-opdracht in Linux

Linux Command Line Tutorial For Beginners 13 - sudo command

Linux Command Line Tutorial For Beginners 13 - sudo command

Inhoudsopgave:

Anonim

Met de opdracht sudo kunt u programma's uitvoeren als een andere gebruiker, standaard de rootgebruiker. Als u veel tijd doorbrengt op de opdrachtregel, is sudo een van de opdrachten die u vrij vaak zult gebruiken.

Het gebruik van sudo in plaats van inloggen als root is veiliger omdat u beperkte beheerdersrechten kunt verlenen aan individuele gebruikers zonder dat ze het rootwachtwoord kennen.

In deze zelfstudie leggen we uit hoe u de opdracht sudo .

Sudo installeren (sudo-opdracht niet gevonden)

Het sudo-pakket is vooraf geïnstalleerd op de meeste Linux-distributies.

Om te controleren of het sudo-pakket op uw systeem is geïnstalleerd, opent u uw console, typt u sudo en drukt u op Enter . Als je sudo hebt geïnstalleerd, geeft het systeem een ​​kort helpbericht weer, anders zie je zoiets als een sudo command not found .

Als sudo niet is geïnstalleerd, kunt u het eenvoudig installeren met behulp van de pakketbeheerder van uw distro.

Installeer Sudo op Ubuntu en Debian

apt install sudo

Installeer Sudo op CentOS en Fedora

yum install sudo

Gebruiker toevoegen aan Sudoers

Standaard is op de meeste Linux-distributies sudo-toegang verlenen net zo eenvoudig als het toevoegen van de gebruiker aan de sudo-groep die is gedefinieerd in het bestand sudoers . Leden van deze groep kunnen elk commando als root uitvoeren. De naam van de groep kan verschillen van distributie tot distributie.

Op RedHat gebaseerde distributies zoals CentOS en Fedora, is de naam van de sudo-groep wheel . De gebruiker toevoegen aan de groepsrun:

usermod -aG wheel username

Op Debian, Ubuntu en hun derivaten krijgen leden van de groep sudo sudo-toegang:

usermod -aG sudo username

Het root-gebruikersaccount in Ubuntu is standaard om veiligheidsredenen uitgeschakeld en gebruikers worden aangemoedigd om systeembeheertaken uit te voeren met sudo. De eerste gebruiker die door het Ubuntu-installatieprogramma is gemaakt, is al lid van de sudo-groep, dus als u Ubuntu uitvoert, is de kans groot dat de gebruiker waarmee u bent aangemeld zoals reeds is verleend met sudo-rechten.

Als u bijvoorbeeld wilt dat de gebruiker linuxize alleen de opdracht mkdir als sudo uitvoert, typt u:

sudo visudo

en voeg de volgende regel toe:

linuxize ALL=/bin/mkdir

Op de meeste systemen opent het visudo commando het bestand /etc/sudoers met de vim-teksteditor. Als je geen ervaring hebt met vim, bekijk dan ons artikel over het opslaan van een bestand en verlaat de vim-editor.

U kunt gebruikers ook toestaan ​​sudo-opdrachten uit te voeren zonder een wachtwoord in te voeren:

linuxize ALL=(ALL) NOPASSWD: ALL

Hoe Sudo te gebruiken

De syntaxis voor de opdracht sudo is als volgt:

sudo OPTION.. COMMAND

De opdracht sudo heeft veel opties die het gedrag bepalen, maar meestal wordt sudo in de meest basale vorm gebruikt, zonder enige optie.

Om sudo te gebruiken, geeft u de opdracht gewoon een voorvoegsel met sudo :

sudo command

Waar command is de opdracht waarvoor u sudo wilt gebruiken.

Sudo zal het bestand /etc/sudoers en controleren of de aanroepende gebruiker sudo assessment heeft gekregen. De eerste keer dat u sudo in een sessie gebruikt, wordt u gevraagd het gebruikerswachtwoord in te voeren en wordt de opdracht als root uitgevoerd.

Als u bijvoorbeeld alle bestanden in de map /root wilt weergeven, gebruikt u:

sudo ls /root

password for linuxize:….bashrc.cache.config.local.profile

Time-out wachtwoord

Standaard vraagt ​​sudo u om uw wachtwoord opnieuw in te voeren na vijf minuten inactiviteit van sudo. U kunt de standaardtime-out wijzigen door het bestand sudoers bewerken. Open het bestand met visudo :

sudo visudo

Stel de standaardtime-out in door de onderstaande regel toe te voegen, waarbij 10 de time-out is die is opgegeven in minuten:

Defaults timestamp_timeout=10

Defaults:user_name timestamp_timeout=10

Voer een opdracht uit als een andere gebruiker dan root

Er is een verkeerde perceptie dat sudo alleen wordt gebruikt om root-machtigingen te bieden aan een gewone gebruiker. Eigenlijk kun je sudo gebruiken om een ​​opdracht als elke gebruiker uit te voeren.

Met de optie -u kunt u een opdracht uitvoeren als een opgegeven gebruiker.

In het volgende voorbeeld gebruiken we sudo om de opdracht whoami voeren als een gebruiker "richard":

sudo -u richard whoami

Met de opdracht whoami wordt de naam afgedrukt van de gebruiker die de opdracht uitvoert:

richard

Hoe om te leiden met Sudo

sudo echo "test" > /root/file.txt

bash: /root/file.txt: Permission denied

Dit gebeurt omdat de omleiding " > " van de uitvoer wordt uitgevoerd onder de gebruiker waarbij u bent aangemeld, niet de gebruiker die is opgegeven door sudo. De omleiding vindt plaats voordat het sudo commando wordt aangeroepen.

Een oplossing is om een ​​nieuwe shell als root aan te roepen met behulp van sudo sh -c :

sudo sh -c 'echo "test" > /root/file.txt'

Een andere optie is om de uitvoer als gewone gebruiker naar het tee commando te leiden, zoals hieronder weergegeven:

echo "test" | sudo tee /root/file.txt

Conclusie

U hebt geleerd hoe u de opdracht sudo en hoe u nieuwe gebruikers met sudo-rechten kunt maken.

terminal sudo