Qual è la differenza tra “su -“, “sudo bash” e “sudo sh”?

Mi piacerebbe sapere qual è la differenza tra

  • su -
  • sudo bash
  • sudo sh

Non riesco ad accedere come root mentre faccio su - perché non ho la password di root – voglio dire ho la mia password utente con cui posso sudo "command" ma questa password non funziona per su - Posso accedere come root con sudo bash con la mia password utente e posso accedere mentre faccio sudo sh ma poi ottengo un prompt dei comandi in questo modulo #

sfondo

In Linux (e Unix in generale), c’è un SuperUser chiamato Root . Il SuperUser può fare qualsiasi cosa e ogni cosa, e quindi fare il lavoro quotidiano come SuperUser può essere pericoloso. È ansible digitare un comando in modo errato e distruggere il sistema. Idealmente, si esegue come utente che ha solo i privilegi necessari per l’attività in corso. In alcuni casi, questo è necessariamente Root, ma la maggior parte delle volte è un utente normale.

su –

Questo comando è utilizzato per accedere all’account root.
Per impostazione predefinita, la password dell’account root è bloccata in Ubuntu. Ciò significa che non è ansible accedere come root direttamente o utilizzare il comando su per diventare l’utente root. Tuttavia, poiché l’account Root esiste fisicamente, è comunque ansible eseguire programmi con privilegi a livello di root. È qui che entra in scena – consente agli utenti autorizzati (normalmente utenti “Amministrativi”) di eseguire determinati programmi come root senza dover conoscere la password di root.

Vedi Come abilitare l’account root .

sudo sh

Questo comando esegue “sh” come superutente.
L’utilità sh è un interprete del linguaggio di comando che deve eseguire comandi letti da una stringa della riga di comando, dallo standard input o da un file specificato.

sudo bash

Questo comando esegue “bash” come superutente.
Bash è la shell o interprete del linguaggio di comando. Bash è una shell sh-compatibile che incorpora caratteristiche utili dalla shell Korn (ksh) e dalla shell C (csh). È conforms allo standard IEEE POSIX P1003.2 / ISO 9945.2 Shell and Tools. Offre miglioramenti funzionali su sh sia per la programmazione che per l’uso interattivo. Inoltre, la maggior parte degli script sh può essere eseguita da Bash senza modifiche.

Riferimenti: 1 , 2 , 3 .

su - :

Ciò cambierà l’identificativo utente e erediterà le variabili d’ambiente come se avessi effettuato l’accesso con quell’utente. Normalmente useresti il ​​formato su - per accedere come utente. Se si rilascia “userid”, si presuppone che si stia tentando di accedere come root, cosa che non è ansible (a meno che non si modifichi la password di root).

sudo bash e sudo sh :

Qualsiasi cosa dopo che sudo è un programma da eseguire, quindi in questi casi si sta richiedendo di eseguire un paio di shell, rispettivamente bash e dash. usa man bash e man sh per maggiori dettagli sui diversi gusci.


Domande correlate:

  • Chiedi a Ubuntu Come sapere la mia password di root?
  • Stack Overflow Quale shell Linux dovrei usare?