MTE legt uit: de verschillen tussen Su, Sudo Su, Sudo -s en Sudo -i
Op de Linux-opdrachtregel zijn er veel verschillende manieren om een root-sessie in de terminal te krijgen. Dit kan enige verwarring creëren, omdat de meeste beginnende gebruikers die op zoek zijn naar root, misschien niet bekend zijn met hoe elke opdracht root-toegang kan krijgen, hoe ze anders zijn en wanneer deze verschillen ertoe doen.
Daarom zullen we elk van de vele verschillende commando's die worden gebruikt om root-toegang te verkrijgen in een terminal uit elkaar te halen. We zullen precies uitleggen hoe ze wortel schieten, wanneer ze te gebruiken en alles daartussenin.
su
Het commando su
vervangt de huidige gebruiker die door het systeem in de shell wordt gebruikt. U kunt naar elke gebruiker overschakelen door su
en er een gebruikersnaam aan toe te voegen. Dit zal het systeem vertellen om te schakelen (en in wezen uit te loggen) van de huidige gebruiker naar de opgegeven gebruiker. Als alternatief kan de opdracht su
root-toegang verkrijgen door su
te geven zonder iets op te geven na de opdracht.
"Su" kan het beste worden gebruikt wanneer een gebruiker directe toegang tot het root-account op het systeem wenst. Het gaat niet door sudo
of iets dergelijks. In plaats daarvan moet het wachtwoord van de rootgebruiker bekend zijn en worden gebruikt om in te loggen. Bovendien hebben andere manieren om root te verkrijgen niet het voordeel dat ze toegang krijgen tot de hoofdmap van de hoofdmap en de rootomgeving.
sudo su
Deze opdracht is in essentie hetzelfde als alleen su
in de shell uitvoeren. In plaats van het systeem te vertellen om "direct van gebruiker te wisselen", vertel je het om het "su" -commando als root uit te voeren. Als sudo su
wordt uitgevoerd, worden ".profile", ".bashrc" en "/ etc / profile" gestart, ongeveer zoals su
(of su root
). Dit komt omdat als een commando wordt uitgevoerd met sudo
ervoor, het een commando is dat root-rechten krijgt.
Hoewel er niet veel verschil is met "su", is sudo su
nog steeds een zeer nuttig commando voor één belangrijke reden: wanneer een gebruiker "su" gebruikt om root-toegang op een systeem te verkrijgen, moeten ze het root-wachtwoord kennen. De manier waarop root wordt gegeven met sudo su
is door het wachtwoord van de huidige gebruiker op te vragen. Dit maakt het mogelijk om root te verkrijgen zonder het root-wachtwoord dat de veiligheid verhoogt.
sudo -i
Het gebruik van sudo -i
is vrijwel hetzelfde als het sudo su
commando. Gebruikers kunnen root krijgen door "sudo" en niet door over te schakelen naar de rootgebruiker. Net als sudo su
, staat de -i
vlag een gebruiker toe om een rootomgeving te krijgen zonder het root-accountwachtwoord te kennen. sudo -i
lijkt ook erg op het gebruik van sudo su
omdat het alle omgevingsbestanden (.profile, etc.) zal lezen en de omgeving binnen de shell mee zal plaatsen.
Waar het verschilt van "sudo su" is dat sudo -i
een veel schonere manier is om root en een rootomgeving te verkrijgen zonder direct interactie te hebben met de rootgebruiker. Hoe? Met sudo su
gebruik je meer dan één root- setuid
commando's. Dit gegeven maakt het veel uitdagender om uit te zoeken welke omgevingsvariabelen zullen worden bewaard en welke zullen worden gewijzigd (wanneer ze worden overspoeld naar de rootomgeving). Dit is niet waar met sudo -i
, en daarom zien de meeste mensen het als de voorkeursmethode om root te verkrijgen zonder direct in te loggen.
sudo -s
De schakeloptie -s
voor "sudo" leest de $ SHELL-variabele van de huidige gebruiker die opdrachten uitvoert. Deze opdracht werkt alsof de gebruiker sudo /bin/bash
uitvoert. Sudo -s
is een shell die niet inlogt. Dit betekent dat in tegenstelling tot een commando zoals sudo -i
of sudo su
, het systeem geen omgevingsbestanden zal lezen. Dit betekent dat wanneer een gebruiker de shell opdracht geeft om sudo -s
, deze root wordt maar de gebruiker of de gebruikersomgeving niet verandert. Je huis zal niet de thuisbasis zijn, etc.
Deze opdracht wordt het best gebruikt als de gebruiker helemaal geen root wil aanraken en hij wil gewoon een rootshell voor eenvoudige uitvoering van commando's. Andere hierboven besproken commando's krijgen root-toegang, maar raken root-omgevingsbestanden aan en geven gebruikers meer volledige toegang tot root (wat een beveiligingsprobleem kan zijn).
Conclusie: welk commando moet ik gebruiken?
Elke opdracht heeft zijn use-case. Het belangrijkste hier is om te begrijpen wat elke opdracht doet en wanneer ze moeten worden gebruikt. In zijn huidige vorm is sudo -i
de meest praktische, schone manier om een rootomgeving te verkrijgen. Aan de andere kant zullen degenen die sudo -s
vinden dat ze een rootshell kunnen krijgen zonder de mogelijkheid om de rootomgeving aan te raken, iets dat extra beveiligingsvoordelen heeft.
Er is echt geen enkele opdracht op deze lijst die 100% de beste is. Naarmate gebruikers meer vertrouwd raken met de opdrachtregel, moeten ze elke manier van root (en er zijn er veel) rekening mee houden en de voor- en nadelen afwegen en dienovereenkomstig handelen. Ik hoop dat met de hulp van dit artikel deze beslissingen gemakkelijker zullen zijn.
Op welke manier krijg je de voorkeur aan root-toegang in Linux? Vertel het ons hieronder!
Afbeelding tegoed: blog.david-jensen.com