GNU/Linux >> Linux Esercitazione >  >> Linux

10 Suggerimenti rapidi sul comando sudo per i sistemi Linux

Panoramica

sudo sta per superutente fare . Consente agli utenti autorizzati di eseguire il comando come un altro utente. Un altro utente può essere un utente normale o un superutente. Tuttavia, la maggior parte delle volte lo utilizziamo per eseguire comandi con privilegi elevati.

Il comando sudo funziona in combinazione con le politiche di sicurezza, la politica di sicurezza predefinita è sudoers ed è configurabile tramite /etc/sudoers file. Le sue politiche di sicurezza sono altamente estensibili. Si possono sviluppare e distribuire le proprie politiche come plugin.

Com'è diverso da su

In GNU/Linux ci sono due modi per eseguire comandi con privilegi elevati:

  • Utilizzo di su comando
  • Utilizzo di sudo comando

su sta per cambia utente . Usando su, possiamo passare all'utente root ed eseguire il comando. Ma ci sono alcuni inconvenienti con questo approccio.

  • Dobbiamo condividere la password di root con un altro utente.
  • Non possiamo fornire un accesso controllato poiché l'utente root è superutente
  • Non possiamo controllare cosa sta facendo l'utente.

sudo risolve questi problemi in un modo unico.

  1. Prima di tutto, non è necessario compromettere la password dell'utente root. L'utente normale utilizza la propria password per eseguire il comando con privilegi elevati.
  2. Possiamo controllare l'accesso dell'utente sudo, il che significa che possiamo limitare l'utente a eseguire solo determinati comandi.
  3. Oltre a questo, tutte le attività dell'utente sudo vengono registrate, quindi possiamo sempre controllare quali azioni sono state eseguite. Su GNU/Linux basato su Debian tutte le attività sono registrate in /var/log/auth.log file.

Le sezioni successive di questo tutorial fanno luce su questi punti.

Procedi con sudo

Ora, abbiamo una buona comprensione di sudo. Sporciamoci le mani con la pratica. Per dimostrazione, sto usando Ubuntu. Tuttavia, il comportamento con un'altra distribuzione dovrebbe essere identico.

Consenti accesso a sudo

Aggiungiamo un utente normale come utente sudo. Nel mio caso il nome utente è linuxtechi

1) Modifica il file /etc/sudoers come segue:

$ sudo visudo

2) Aggiungi la riga sottostante per consentire a sudo l'accesso all'utente linuxtechi:

linuxtechi ALL=(ALL) ALL

Nel comando sopra:

  • linuxtechi indica il nome utente
  • Prima ALL indica di consentire l'accesso a sudo da qualsiasi terminale/macchina
  • Il secondo (TUTTO) indica che il comando sudo può essere eseguito come qualsiasi utente
  • Terzo TUTTO indica che tutti i comandi possono essere eseguiti come root

Esegui comando con privilegi elevati

Per eseguire il comando con privilegi elevati, anteponi semplicemente la parola sudo al comando come segue:

$ sudo cat /etc/passwd

Quando esegui questo comando, verrà richiesta la password di linuxtechi e non la password dell'utente root.

Esegui il comando come un altro utente

In aggiunta a questo possiamo usare sudo per eseguire il comando come un altro utente. Ad esempio, nel comando seguente, l'utente linuxtechi esegue il comando come utente devesh:

$ sudo -u devesh whoami
[sudo] password for linuxtechi:
devesh

Comportamento di comando integrato

Una delle limitazioni di sudo è:il comando integrato di Shell non funziona con esso. Ad esempio, la cronologia è integrata nel comando, se si tenta di eseguire questo comando con sudo, l'errore comando non trovato verrà segnalato come segue:

$ sudo history
[sudo] password for linuxtechi:
sudo: history: command not found

Accedi alla shell di root

Per superare il problema di cui sopra, possiamo ottenere l'accesso alla shell di root ed eseguire qualsiasi comando da lì, incluso quello integrato di Shell.

Per accedere alla shell di root, esegui il comando seguente:

$ sudo bash

Dopo aver eseguito questo comando, noterai che il segno del prompt cambia in cancelletto (#).

Ricette

In questa sezione parleremo di alcune utili ricette che ti aiuteranno a migliorare la produttività. La maggior parte dei comandi può essere utilizzata per completare le attività quotidiane.

Esegui il comando precedente come utente sudo

Supponiamo che tu voglia eseguire il comando precedente con privilegi elevati, quindi il trucco di seguito sarà utile:

$ sudo !4

Il comando precedente eseguirà il 4° comando dalla cronologia con privilegi elevati.

Se vuoi eseguire il comando precedente con i privilegi di root usando il comando sudo, usa il comando seguente,

$ sudo !!

comando sudo con Vim

Molte volte modifichiamo i file di configurazione del sistema e durante il salvataggio ci rendiamo conto che abbiamo bisogno dell'accesso come root per farlo. Perché questo potremmo perdere i nostri cambiamenti. Non c'è bisogno di farsi prendere dal panico, possiamo usare il comando seguente in Vim per salvare da questa situazione:

:w !sudo tee %

Nel comando sopra:

  • I due punti (:) indicano che siamo nella modalità ex di Vim
  • Il punto esclamativo (!) indica che stiamo eseguendo il comando della shell
  • sudo e tee sono i comandi della shell
  • Il segno di percentuale (%) indica tutte le righe della riga corrente

Esegui più comandi usando sudo

Finora abbiamo eseguito un solo comando con sudo ma possiamo eseguire più comandi con esso. Separa semplicemente i comandi usando punto e virgola (;) come segue:

$ sudo -- bash -c 'pwd; hostname; whoami'

Nel comando sopra:

  • Il doppio trattino (–) interrompe l'elaborazione delle opzioni della riga di comando
  • bash indica il nome della shell da utilizzare per l'esecuzione
  • I comandi da eseguire sono seguiti dall'opzione –c

Esegui il comando sudo senza password

Quando il comando sudo viene eseguito per la prima volta, verrà richiesta la password e per impostazione predefinita la password verrà memorizzata nella cache per i prossimi 15 minuti. Tuttavia, possiamo ignorare questo comportamento e disabilitare l'autenticazione della password utilizzando la parola chiave NOPASSWD come segue:

linuxtechi ALL=(ALL) NOPASSWD: ALL

Limita all'utente di eseguire determinati comandi

Per fornire un accesso controllato, possiamo limitare l'utente sudo a eseguire solo determinati comandi. Ad esempio, la riga sottostante consente l'esecuzione solo dei comandi echo e ls

linuxtechi ALL=(ALL) NOPASSWD: /bin/echo /bin/ls

Aggiungi una riga o una stringa di testo a un file usando il comando sudo

Ci sono alcuni scenari in cui dobbiamo aggiungere alcune righe a un file esistente con un utente locale che ha i diritti sudo,

$ echo 'stringa di testo' | sudo tee -a

L'esempio è mostrato di seguito:

[email protected]:~$ echo "deb http://ftp.de.debian.org/debian buster main contrib" | sudo tee -a /etc/apt/sources.list
deb http://ftp.de.debian.org/debian buster main contrib
[email protected]:~$

Modo alternativo per aggiungere righe o testo a un file esistente usando il comando sudo,

sudo sh -c 'echo "deb http://ftp.de.debian.org/debian buster main contrib" >> /etc/apt/sources.list'

Approfondimenti su sudo

Esaminiamo di più sul comando sudo per ottenere informazioni dettagliate al riguardo.

$ ls -l /usr/bin/sudo
-rwsr-xr-x 1 root root 145040 Jun 13  2017 /usr/bin/sudo

Se osservi attentamente le autorizzazioni dei file, setuid bit è abilitato su sudo. Quando un utente esegue questo binario, verrà eseguito con i privilegi dell'utente che possiede il file. In questo caso è l'utente root.

Per dimostrarlo, possiamo usare il comando id con esso come segue:

$ id
uid=1002(linuxtechi) gid=1002(linuxtechi) groups=1002(linuxtechi)

Quando eseguiamo il comando id senza sudo, verrà visualizzato l'id dell'utente linuxtechi.

$ sudo id
uid=0(root) gid=0(root) groups=0(root)

Ma se eseguiamo il comando id con sudo, verrà visualizzato l'id dell'utente root.

Conclusione

Takeaway da questo articolo è:sudo fornisce un accesso più controllato agli utenti regolari. Usando queste tecniche, più utenti possono interagire con GNU/Linux in modo sicuro.

Leggi anche:Come creare collegamenti hard e soft (collegamento simbolico) su sistemi Linux


Linux
  1. 3 consigli per la stampa con Linux

  2. 8 suggerimenti per la riga di comando di Linux

  3. 4 strumenti per la creazione di sistemi Linux embedded

  4. Addomesticare il comando tar:suggerimenti per la gestione dei backup in Linux

  5. Suggerimenti per la riga di comando di Linux per aumentare la produttività

10 suggerimenti sul comando 'dmesg' per Linux Geeks

10 utili esempi di comandi ncat (nc) per sistemi Linux

11 utili esempi di comandi divisi per sistemi Linux

18 Esempi di comandi rapidi "lsof" per Linux Geeks

Comando Sudo in Linux

Nozioni di base sulla riga di comando di Linux:sudo