MTE forklarer: Forskellene mellem Su, Sudo Su, Sudo-s og Sudo -i
På Linux kommandolinjen er der mange forskellige måder at få en root session på terminalen. Dette kan skabe forvirring, da de fleste nybegyndere, der søger at få rod, måske ikke er bekendt med, hvordan hver kommando kan få rootadgang, hvordan de er forskellige, og når disse forskelle er vigtige.
Det er på grund af dette, vil vi adskille hver af de mange forskellige kommandoer, der bruges til at få adgang til root i en terminal. Vi forklarer præcis, hvordan de får rod, hvornår de skal bruges, og alt imellem.
su
su
kommandoen erstatter den nuværende bruger, der anvendes af systemet i skallen. Du kan skifte til enhver bruger ved at tage su
og tilføje et brugernavn ved det. Dette vil fortælle systemet at skifte (og i det væsentlige logge ud af) den aktuelle bruger til den specificerede. Alternativt kan su
kommandoen få adgang til root ved at indtaste su
uden at angive noget efter kommandoen.
"Su" bruges bedst, når en bruger ønsker direkte adgang til root-kontoen på systemet. Det går ikke igennem sudo
eller noget lignende. I stedet skal rodbrugerens adgangskode være kendt og bruges til at logge ind med. Desuden har andre måder at få rod på, ikke fordelene ved at få adgang til root-hjemmemappen og rodmiljøet.
sudo su
Denne kommando er stort set den samme som bare kører su
i skallen. I stedet for at fortælle systemet om at "skifte brugere" direkte, fortæller du det at køre "su" -kommandoen som root. Når sudo su
køres, vil ".profile", ".bashrc" og "/ etc / profile" blive startet, ligesom at løbe su
(eller su root
). Dette skyldes, at hvis en kommando køres med sudo
foran den, er det en kommando, der er givet root privilegier.
Selvom der ikke er meget forskel fra "su", er sudo su
stadig en meget nyttig kommando af en vigtig årsag: Når en bruger kører "su" for at få adgang til root på et system, skal de kende rodadgangskoden. Den måde rod er givet med sudo su
er ved at anmode om den nuværende brugerens adgangskode. Dette gør det muligt at få rod uden rodadgangskoden, som øger sikkerheden.
sudo -i
Brug sudo -i
er stort set det samme som sudo su
kommandoen. Brugere kan få rod ved "sudo" og ikke ved at skifte til rodbrugeren. I lighed med sudo su
tillader det -i
flag en bruger at få et rodmiljø uden at skulle kende rodkontoens adgangskode. sudo -i
ligner også på at bruge sudo su
i, at det vil læse alle miljøfiler (.profile osv.) og sætte miljøet inde i skallen med det.
Hvor det adskiller sig fra "sudo su", er det sudo -i
er en meget renere måde at opnå rod og et rotmiljø på uden at interagere direkte med rodenbrugeren. Hvordan? Med sudo su
bruger du mere end én root setuid
kommandoer. Denne kendsgerning gør det meget mere udfordrende at finde ud af, hvilke miljøvariabler der vil blive bevaret, og hvilke der vil blive ændret (når man svømmer til rodmiljøet). Dette er ikke sandt med sudo -i
, og det er på grund af det, at de fleste mennesker ser det som den foretrukne metode til at få rod uden at logge ind direkte.
sudo-s
Den -s
switch for "sudo" -kommandoen læser $ SHELL-variablen for de nuværende brugerkomplette kommandoer. Denne kommando fungerer som om brugeren kører sudo /bin/bash
. Sudo -s
er en "non-login" stil shell. Dette betyder, at systemet i modsætning til en kommando som sudo -i
eller sudo su
ikke læser nogen miljøfiler. Dette betyder, at når en bruger fortæller shell'en at køre sudo -s
, får den rod, men ændrer ikke brugeren eller brugermiljøet. Dit hjem vil ikke være rodenhjemmet osv.
Denne kommando bruges bedst, når brugeren ikke ønsker at røre roten overhovedet og kun ønsker en rodskal for nem kommandoekørsel. Andre kommandoer, der talte om ovenstående, får adgang til root, men berører root-miljøfiler og giver brugere mere fuld adgang til root (hvilket kan være et sikkerhedsproblem).
Konklusion: Hvilken kommando skal jeg bruge?
Hver kommando har sin brugssag. Det vigtige her er at forstå, hvad hver kommando gør og hvornår man bruger dem. Som det står, er sudo -i
den mest praktiske, rene måde at få et rodmiljø på. På den anden side vil de, der bruger sudo -s
, finde, at de kan få en root shell uden evnen til at røre roden miljøet, noget der har tilføjet sikkerhedsmæssige fordele.
Der er virkelig ikke en kommando på denne liste, der er 100% den bedste. Da brugerne bliver mere komfortable med kommandolinjen, skal de tage hensyn til hver enkelt måde at få rod på (og der er mange), og vejen fordele og ulemper og handle i overensstemmelse hermed. Jeg håber at ved hjælp af denne artikel vil disse beslutninger blive lettere at gøre.
Hvilken måde foretrækker du at få adgang til root i Linux? Fortæl os nedenfor!
Billedkredit: blog.david-jensen.com