| 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.
Note that runuser in all cases use PAM (pam_getenvlist(3)) to do the final environment modification. Command-line options such as --login and --preserve-environment affect the environment before it is modified by 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
The entire session can also be moved to the background (e.g., runuser --pty -u user -- command &). If the pseudo-terminal is enabled, then runuser works as a proxy between the sessions (sync stdin and stdout).
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 _/etc/login.defs
SECURITY NOTES
If runuser shares a terminal with the original session, it is potentially vulnerable to privilege escalation through TIOCSTI/TIOCLINUX ioctl command injection. There are two built-in ways to prevent this: Either you can use runuser with the -c option, which starts a new session via setsid(2) without a controlling terminal. Or, if your use case requires a controlling terminal, for example an interactive session, you can instruct runuser to use a pseudo terminal with the --pty or -P option.
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
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-05-18 | util-linux 2.42.1 |