su
SU(1)
Användarkommandon
NAMN
su — kör ett kommando med substituerat användar- och grupp-ID
SAMMANFATTNING
su [alternativ] [-] [användare [argument...]]
BESKRIVNING
su tillåter kommandon att köras med ett substituerat användar- och grupp-ID.
När su anropas utan att en användare specificeras, startar su som standard ett interaktivt skal som root. När en användare specificeras kan ytterligare argument anges, och dessa skickas då till skalet.
För bakåtkompatibilitet ändrar su som standard inte den aktuella katalogen och ställer bara in miljövariablerna HOME och SHELL (samt USER och LOGNAME om målanvändaren inte är root). Det rekommenderas att alltid använda alternativet --login (istället för dess genväg -) för att undvika bieffekter som orsakas av att blanda miljöer.
Denna version av su använder PAM för autentisering, konto- och sessionshantering. Vissa konfigurationsalternativ som finns i andra su-implementationer, såsom stöd för en "wheel group", måste konfigureras via PAM.
su är främst avsedd för obehöriga användare, den rekommenderade lösningen för behöriga användare (t.ex. skript som körs av root) är att använda kommandot runuser(1), som inte kräver autentisering och har en separat PAM-konfiguration. Om PAM-sessionen inte krävs alls är den rekommenderade lösningen att använda kommandot setpriv(1).
Observera att su i alla fall använder PAM (pam_getenvlist(3)) för att göra den slutliga miljömodifikationen. Kommandoradsalternativ som --login och --preserve-environment påverkar miljön innan den ändras av PAM.
Sedan version 2.38 återställer su processens resursgränser RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS och RLIMIT_NOFILE.
ALTERNATIV
- -c, --command=kommando — Skicka kommandot till skalet med alternativet -c.
- -f, --fast — Skicka -f till skalet, vilket kan vara användbart eller inte, beroende på skalet.
- -g, --group=grupp — Specificera den primära gruppen. Detta alternativ är endast tillgängligt för root-användaren.
- -G, --supp-group=grupp — Specificera en tilläggsgrupp. Detta alternativ är endast tillgängligt för root-användaren. Den första specificerade tilläggsgruppen används också som primärgrupp om alternativet --group inte är specificerat.
- -, -l, --login — Starta skalet som ett inloggningsskal med en miljö som liknar en verklig inloggning. Observera att på systemd-baserade system kan en ny session definieras som en verklig ingångspunkt till systemet. Men su skapar inte en verklig session (via PAM) från denna synvinkel. Du behöver använda verktyg som systemd-run eller machinectl för att initiera en fullständig, verklig session.
- -m, -p, --preserve-environment — Bevara hela miljön, dvs. ställ inte in HOME, SHELL, USER eller LOGNAME. Detta alternativ ignoreras om alternativet --login är specificerat.
- -P, --pty — Skapa en pseudo-terminal för sessionen. Den oberoende terminalen ger bättre säkerhet eftersom användaren inte delar en terminal med den ursprungliga sessionen.
- -s, --shell=shell — Kör det specificerade skalet istället för standarden. Om målanvändaren har ett begränsat skal (dvs. inte listat i /etc/shells), ignoreras alternativet --shell och miljövariablerna SHELL om inte den anropande användaren är root.
- --session-command=kommando — Samma som -c, men skapa inte en ny session. (Ej rekommenderat.)
- -T, --no-pty — Skapa inte en pseudo-terminal, motsatsen till --pty och -P. Observera att körning utan en pseudo-terminal öppnar säkerhetsrisken för privilegieeskalering genom TIOCSTI/TIOCLINUX ioctl-kommandoinjektion.
- -w, --whitelist-environment=lista — Återställ inte de miljövariabler som specificeras i den komma-separerade listan när miljön rensas för --login. Vitlistan ignoreras för miljövariablerna HOME, SHELL, USER, LOGNAME och PATH.
- -h, --help — Visa hjälpinformation och avsluta.
- -V, --version — Skriv ut versionsnumret och avsluta.
SIGNALER
Vid mottagande av antingen SIGINT, SIGQUIT eller SIGTERM avslutar su sin barnprocess och avslutar sig själv med den mottagna signalen. Barnprocessen avslutas med SIGTERM. Efter ett misslyckat försök och 2 sekunders fördröjning dödas barnprocessen med SIGKILL.
KONFIGURATIONSFILAR
su läser konfigurationsfilerna /etc/default/su och /etc/login.defs. Följande konfigurationspunkter är relevanta för su:
- FAIL_DELAY (nummer) — Fördröjning i sekunder vid ett autentiseringsfel. Numret måste vara ett icke-negativt heltal.
- ENV_PATH (sträng) — Definierar miljövariabeln PATH för en vanlig användare. Standardvärdet är /usr/local/bin:/bin:/usr/bin.
- ENV_ROOTPATH (sträng), ENV_SUPATH (sträng) — Definierar miljövariabeln PATH för root. ENV_SUPATH har företräde. Standardvärdet är /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin.
- ALWAYS_SET_PATH (boolean) — Om inställt på yes och --login samt --preserve-environment inte är specificerade, initierar su variabeln PATH.
UTGÅNGSSTATUS
su returnerar normalt utgångsstatusen för det kommando det exekverade. Om kommandot dödades av en signal returnerar su signalens nummer plus 128.
Utgångsstatus genererat av su själv:
- 1 — Generiskt fel innan det begärda kommandot kördes
- 126 — Det begärda kommandot kunde inte exekveras
- 127 — Det begärda kommandot hittades inte
FILER
- /etc/pam.d/su — standard PAM-konfigurationsfil
- /etc/pam.d/su-l — PAM-konfigurationsfil om --login är specificerad
- /etc/default/su — kommando-specifik logindef-konfigurationsfil
- /etc/login.defs — global logindef-konfigurationsfil
NOTERINGAR
Av säkerhetsskäl loggar su alltid misslyckade inloggningsförsök till filen btmp, men skriver inte alls till filen lastlog. Denna lösning kan användas för att styra su-beteendet genom PAM-konfiguration. Om du vill använda modulen pam_lastlog(8) för att skriva ut varningsmeddelanden om misslyckade inloggningsförsök, måste pam_lastlog(8) konfigureras för att uppdatera filen lastlog. Exempel:
session required pam_lastlog.so nowtmp
HISTORIK
Detta su-kommando härstammar från coreutils' su, som baserades på en implementation av David MacKenzie. util-linux-versionen har omarbetats av Karel Zak.
SE ÄVEN
- setpriv(1), login.defs(5), shells(5), pam(8), runuser(1)
RAPPORTERA BUGGAR
För buggrapporter, använd ärendespåraren på https://github.com/util-linux/util-linux/issues.
TILLGÄNGLIGHET
su-kommandot är en del av util-linux-paketet som kan laddas ner från Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>. Denna sida är en del av util-linux (en slumpmässig samling av Linux-verktyg)-projektet. Information om projektet finns på https://www.kernel.org/pub/linux/utils/util-linux/. Om du har en felrapport för denna manual, skicka den till util-linux@vger.kernel.org. Denna sida hämtades från projektets uppströms Git-repository git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git den 2024-06-14. (Vid den tidpunkten var datumet för den senaste commit som hittades i repositoryn 2024-06-10.) Om du upptäcker några problem med rendering i denna HTML-version av sidan, eller om du tror att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i denna KOLLOFON (som inte är en del av den ursprungliga manualsidan), skicka ett mail till man-pages@man7.org.
util-linux 2.41.devel-537-e... 2024-04-04 SU(1)