| RUNUSER(1) | Användarkommandon | RUNUSER(1) |
NAMN¶
runuser - kör ett kommando med ersättarens användar- och grupp-ID
SYNOPSIS¶
runuser [flaggor] -u användare [[--] kommando [argument...]]
runuser [flaggor] [-] [användare [argument...]]
BESKRIVNING¶
runuser kan användas för att köra kommandon med ett ersättande användar- och grupp-ID. Om flaggan -u inte anges, faller runuser tillbaka till su-kompatibel semantik och ett skal körs. Skillnaden mellan kommandona runuser och su är att runuser inte ber om något lösenord (eftersom det endast får köras av root-användaren) och att det använder en annan PAM-konfiguration. Kommandot runuser behöver inte installeras med set-user-ID-behörigheter.
Om PAM-sessionen inte behövs är den rekommenderade lösningen att använda kommandot setpriv(1).
När runuser anropas utan argument är standardinställningen att ett interaktivt skal körs som root.
Av bakåtkompatibilitetsskäl ändrar runuser som standard inte den aktuella katalogen och anger endast miljövariablerna HOME och SHELL (plus USER och LOGNAME om målets användare inte är root). Den här versionen av runuser använder PAM för sessionshantering.
Observera att runuser alltid använder PAM (pam_getenvlist(3)) för den slutliga ändringen av miljön. Kommandoradsflaggor som --login och --preserve-environment påverkar miljön innan den ändras av PAM.
Sedan version 2.38 återställer runuser processresursgränserna RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS och RLIMIT_NOFILE.
FLAGGOR¶
-c, --command=kommando
-f, --fast
-g, --group=grupp
-G, --supp-group=grupp
-, -l, --login
-m, -p, --preserve-environment
-P, --pty
Hela sessionen kan också flyttas till bakgrunden (t.ex. runuser --pty -u användare -- kommando &). Om pseudoterminalen är aktiverad fungerar runuser som en mellanhand mellan sessionerna (synkroniserar standard in och standard ut).
Den här funktionen är främst avsedd för interaktiva sessioner. Om standardinmatningen inte är en terminal, utan t.ex. en pipe (t.ex. echo "date" | runuser --pty -u användare), inaktiveras flaggan ECHO för pseudoterminalen för att undvika rörig utmatning.
-s, --shell=skal
Om målanvändaren har ett begränsat skal (d.v.s. inte listat i /etc/shells) ignoreras flaggan --shell och miljövariablerna SHELL om inte den anropande användaren är root.
--session-command=kommando
-T, --no-pty
-u, --user=användare
-w, --whitelist-environment=lista
-h, --help
-V, --version
KONFIGURATIONSFILER¶
runuser läser konfigurationsfilerna /etc/default/runuser och /etc/login.defs. Följande konfigurationsobjekt är relevanta för runuser:
ENV_PATH (sträng)
ENV_ROOTPATH (sträng), ENV_SUPATH (sträng)
ALWAYS_SET_PATH (boolean)
Miljövariabeln PATH kan vara annorlunda på system där /bin och /sbin är sammanslagna till /usr; denna variabel påverkas också av kommandoradsflaggan --login och PAM-systeminställningen (t.ex. pam_env(8)).
AVSLUTSSTATUS¶
runuser returnerar normalt utgångsstatusen för det kommando som kördes. Om kommandot dödades av en signal returnerar runuser signalens nummer plus 128.
Avslutningsstatus genereras av runuser själv:
1
126
127
FILER¶
/etc/pam.d/runuser
/etc/pam.d/runuser-l
/etc/default/runuser
/etc/login.defs
SÄKERHETSANMÄRKNINGAR¶
Om runuser delar terminal med den ursprungliga sessionen kan programmet vara sårbart för utökade privilegier genom kommandoinjektion via ioctl-anropen TIOCSTI/TIOCLINUX. Det finns två inbyggda sätt att förhindra detta: använd runuser med flaggan -c, som startar en ny session via setsid(2) utan styrande terminal. Om användningsfallet kräver en styrande terminal, exempelvis en interaktiv session, kan du i stället låta runuser använda en pseudoterminal med flaggan --pty eller -P.
HISTORIK¶
Detta runuser-kommando härstammar från coreutils su, som baserades på en implementering av David MacKenzie, och Fedora runuser-kommandot av Dan Walsh.
SE ÄVEN¶
setpriv(1), su(1), login.defs(5), shells(5), pam(8)
FELRAPPORTERING¶
För felrapporter, använd felhanteraren <https://github.com/util-linux/util-linux/issues>.
TILLGÄNGLIGHET¶
Kommandot runuser ingår i paketet util-linux som kan hämtas från Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
| 2026-09-25 | util-linux 2.42.4 |