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


29

Vorrei sapere qual è la differenza tra

  • su -
  • sudo bash
  • sudo sh

Non riesco ad accedere come root mentre lo faccio su -perché non ho la password di root - intendo che ho la mia password utente con la quale posso sudo "command" ma questa password non funziona perché su - posso accedere come root sudo bashcon la mia password utente e posso accedere mentre facendo sudo shma poi ottengo un prompt dei comandi in questo modulo #

Risposte:


27

sfondo

In Linux (e Unix in generale), esiste un SuperUser chiamato Root . Il SuperUser può fare qualsiasi cosa, e quindi fare il lavoro quotidiano poiché il SuperUser può essere pericoloso. È possibile digitare un comando in modo errato e distruggere il sistema. Idealmente, si esegue come utente che ha solo i privilegi necessari per l'attività a portata di mano. In alcuni casi, questo è necessariamente root, ma il più delle volte è un utente normale.

su -

Questo comando viene utilizzato per accedere all'account di root.
Per impostazione predefinita, la password dell'account root è bloccata in Ubuntu. Ciò significa che non è possibile accedere direttamente come Root o utilizzare il comando su per diventare l'utente Root. Tuttavia, poiché l'account di root esiste fisicamente, è ancora possibile eseguire programmi con privilegi di livello root. È qui che entra in gioco sudo - 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 i 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 utili funzionalità dalla shell Korn (ksh) e dalla shell C (csh). È progettato per essere conforme allo standard IEEE POSIX P1003.2 / ISO 9945.2 Shell e strumenti. 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 .


7
Vale la pena notare che è possibile accedere come superutente eseguendo sudo su -senza una password di root. Poiché sudo esegue il su -comando con i permessi di root, ti verrà richiesta solo la password dell'utente. Questo ha il vantaggio di impostare l'ambiente dell'utente root, cosa che non può essere fatta semplicemente eseguendo una shell con sudo.
Aaron D,

6

su -:

Ciò modificherà l'identificatore utente ed erediterà le variabili di ambiente come se si fosse effettuato l'accesso con quell'utente. Normalmente useresti il ​​formato su - <userid>per accedere come utente. Se si elimina "userid", si presuppone che si stia tentando di accedere come root, cosa impossibile (a meno che non si cambi la password di root).

sudo bash& sudo sh:

Qualunque cosa dopo il sudo è un programma da eseguire, quindi in questi casi stai chiedendo di eseguire un paio di shell, rispettivamente bash e dash. usare man bashe man shper maggiori dettagli sulle diverse shell.


Domande correlate:


Ok, grazie per la risposta, ma qual è la password predefinita per root allora? Dove posso trovarlo ?
Patryk,

@lordmonkey root non ha una password e non ne ha bisogno. sudo -iti darà una shell di login come su -farebbe, tranne sudo che chiede la tua password, non quella di root.
geirha,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.