Het su
(kort voor substitute of switch user) hulpprogramma staat u toe om commando’s uit te voeren met de privileges van een andere gebruiker, standaard de root gebruiker.
Het gebruik van su
is de eenvoudigste manier om over te schakelen naar het administratief account in de huidige login sessie. Dit is vooral handig wanneer de root gebruiker niet mag inloggen op het systeem via sshor met behulp van de GUI display manager.
In deze tutorial leggen we uit hoe je het su
commando gebruikt.
Hoe het su-commando te gebruiken #
De algemene syntaxis voor het su
commando is als volgt:
su ]
Wanneer het wordt aangeroepen zonder enige optie, is het standaardgedrag van su
om een interactieve shell als root uit te voeren:
su
U wordt gevraagd het root-wachtwoord in te voeren, en als dat geauthenticeerd is, wordt de gebruiker die het commando uitvoert tijdelijk root.
De omgevingsvariabelen session shell (SHELL
) en home (HOME
) worden ingesteld vanaf de /etc/passwd
plaats van de vervangende gebruiker, en de huidige directory wordt niet gewijzigd.
Om te bevestigen dat de gebruiker is gewijzigd, gebruikt u het whoami
commando:
whoami
Het commando drukt de naam af van de gebruiker die de huidige shellsessie uitvoert:
root
De meest gebruikte optie bij het aanroepen van su
is -
-l
--login
). Dit maakt de shell een login-shell met een omgeving die erg lijkt op een echte login en verandert de huidige directory:
su -
Als u een andere shell wilt draaien in plaats van degene die is gedefinieerd in het passwd
bestand, gebruik dan de -s
--shell
optie. Om bijvoorbeeld naar root over te schakelen en de zsh
shell te starten, zou u typen:
su -s /usr/bin/zsh
Om de hele omgeving te behouden (HOME
SHELL
USER
, en LOGNAME
) van de aanroepende gebruiker, roep het commando aan met de -p
--preserve-environment
optie.
su -p
Wanneer de -
optie wordt gebruikt, wordt -p
genegeerd.
Als u een commando wilt uitvoeren als de plaatsvervangende gebruiker zonder een interactieve shell te starten, gebruik dan de -c
--command
optie. Om bijvoorbeeld het ps
commando als root aan te roepen, zou u het volgende typen:
su -c ps
Om naar een andere gebruikersaccount over te schakelen, geeft u de gebruikersnaam als argument door aan su
. Om bijvoorbeeld over te schakelen naar de gebruiker tyrion
typt u:
su tyrion
Sudo vs. Su #
Op sommige Linux distributies zoals Ubuntu, is de root gebruikersaccount standaard uitgeschakeld om veiligheidsredenen. Dit betekent dat er geen wachtwoord is ingesteld voor root, en dat u geen su
kunt gebruiken om naar root over te schakelen.
Eén mogelijkheid om naar root over te schakelen is om het su
commando vooraf te laten gaan door sudo
en het wachtwoord in te voeren van de gebruiker die op dat moment is ingelogd:
sudo su -
Met het sudo
commando kunt u programma’s uitvoeren als een andere gebruiker, standaard de root-gebruiker.
Als de gebruiker met sudo
wordt beoordeeld, wordt het su
commando als root aangeroepen. Het uitvoeren van sudo su -
en vervolgens het gebruikerswachtwoord intypen heeft hetzelfde effect als het uitvoeren van su -
en het intypen van het root wachtwoord.
In combinatie met de optie -i
voert sudo
een interactieve login-shell uit met de omgeving van de root-gebruiker:
sudo -i
sudo -i
is in principe hetzelfde als het uitvoeren van su -
.
Het voordeel van het gebruik van sudo
boven su
is dat het root-wachtwoord niet gedeeld hoeft te worden tussen meerdere administratieve gebruikersaccounts.
Met sudo
kunt u gebruikers ook toestaan om alleen specifieke programma’s met root-privileges uit te voeren.
Conclusie #
su
is een command-line hulpprogramma waarmee u tijdelijk een andere gebruiker kunt worden en commando’s kunt uitvoeren met de vervangende gebruiker.