Vraag Waarom is sudo -s beter dan sudo su?


Ik heb hier veel opmerkingen gezien in Ask Ubuntu over de voorkeur voor gebruik sudo -s liever dan sudo su.

Voor mij doen die twee commando's precies hetzelfde. Maar waarom is dat zo sudo -s verondersteld beter te zijn?


27
2017-10-04 04:33


oorsprong


I denk sudo -i of sudo su is beter dan sudo -s om redenen die hier worden genoemd: ubuntuforums.org/showpost.php?p=6188826&postcount=4 Ook: dit is een mogelijk duplicaat van superuser.com/questions/29/... - arrange
Ik denk dat deze vraag moet worden verplaatst naar unix.stackexchange.com - igi


antwoorden:


I denk sudo -s is niet "beter", het is gewoon anders.

sudo -s

houdt je $ HOME-map bij, dus wanneer je programma's start, zullen ze je (en niet root) configuratiebestanden etc. gebruiken. Nadeel: ze kunnen ook het eigendom van je bestanden in de $ HOME-map veranderen, typisch voorbeeld is de .Xauthority bestand, maar daar heb ik nog nooit problemen mee gehad.

sudo su of sudo -i

programma's gebruiken de hoofddirectory en de configuratiebestanden van de hoofdmap. Dit is misschien meer intuïtief, maar het betekent ook dat het geen enkele configuratie gebruikt die je voor jezelf hebt ingesteld (aliassen, bash-geschiedenis, ...).


26
2017-10-04 09:33



Oké, ik begrijp nu het verschil. Dank je! - fitojb
"sudo su" is niet gelijk aan "sudo -i". "sudo -i" is gelijk aan "sudo su -" maar "sudo su -" houdt de huidige werkdirectory bij terwijl "sudo -i" je naar het huis van root brengt - Gregory Pakosz


Omdat sudo -s zal uw omgevingsvariabelen vooral niet veranderen $HOME, die zal blijven HOME=/home/USER. Als je gebruikt sudo su dit zal veranderen in HOME=/root Dit kan negatieve neveneffecten hebben wanneer programma's die u probeert te proberen toegang te krijgen tot de basismap van uw gebruiker.

Dus eigenlijk is het zo sudo vs gksudo bij het uitvoeren van grafische programma's.


13
2017-10-04 08:12





Afgezien van de reeds genoemde verschillen met omgevingsvariabelen, vind ik dat sudo su dom en verkwistend omdat je het vraagt sudo rennen su als root, en vraag het om een ​​shell als root uit te voeren. Waarom zou je een programma vragen om een ​​programma te vragen om je een root-shell te geven, als je gewoon het eerste programma die shell kunt geven? Maakt dat uit in praktische zin? Nee, ik ben gewoon pedant.


5
2017-10-04 18:26



Je hebt gelijk, het is enigszins overbodig. - fitojb
Nou ja, niet helemaal zo: als je gebruikt sudo su root zijn, ja, gewoon gaan sudo -i, bijvoorbeeld. Maar het helpt wel als u een andere gebruiker wilt worden: sudo su - myuser. - hggdh
Er is nog een verschil: sudo -i zal veranderen in /root map en sudo su blijft in de directory die u bent. - laurent
@hggdh, sudo -u myuser. - psusi


Ik ben het niet eens met andere antwoorden wanneer ik de gevallen bekijk waarin u zich wilt aanmelden als een gebruiker die geen shell heeft. Dat is een veel voorkomend geval bij gebruikers die aan services zijn toegewezen.

Het gebruik van "sudo su" start de shell die is opgegeven door de gebruiker. In het geval van een gebruiker die is toegewezen aan het serverproces, is de shell / usr / bin / false en mislukt de registratie. In plaats daarvan zou je moeten invoeren als:

sudo -sHu <server-user>

die je inlogt en cd naar zijn eigen pad, zelfs als de gebruiker geen shell toegewezen heeft gekregen


3
2017-11-09 12:48