RUNCON(1)

๐ŸŒˆ runcon(1) โ€” the girlies' guide to running stuff in a different SELinux security context ๐Ÿ’…

okay so first things first, bestie: this is a page from section 1 of the manual, and the whole thing is literally called runcon. that's it, that's the name. welcome to the vibe ๐ŸŽ€


โœจ NAME โœจ

runcon โ€” run a command with a specified security context. yes, we're doing SELinux today and we're gonna slay it ๐Ÿฆ‹


๐Ÿ’– SYNOPSIS ๐Ÿ’–

runcon CONTEXT COMMAND [args]
runcon [ -c ] [-u USER] [-r ROLE] [-t TYPE] [-l RANGE] COMMAND [args]

two ways in, bestie. pick your fighter ๐Ÿ’€


๐ŸŒธ DESCRIPTION ๐ŸŒธ

So here's the tea: you run COMMAND with a completely-specified CONTEXT, or with the current / transitioned security context that you've tweaked using one or more of LEVEL, ROLE, TYPE, and USER. it's giving "customize your own adventure" โœจ

okay so if none of -c, -t, -u, -r, or -l is specified, then the very first argument gets used as the complete context. and any extra arguments after COMMAND? those get interpreted as arguments to the command. periodt ๐Ÿซถ

โš ๏ธ heads up bestie: only carefully-chosen contexts are likely to run successfully. like, don't just throw random nonsense in there and expect a glow-up, okay? ๐Ÿ˜ญ

So yeah โ€” you're running a program in a different SELinux security context. and plot twist: with neither CONTEXT nor COMMAND, it just prints the current security context. cute little bonus feature ๐Ÿ’œ

also, mandatory arguments to long options are mandatory for short options too. no cap, same rules for everyone ๐ŸŽ€

๐Ÿ‘‘ the options, one by one ๐Ÿ‘‘

  • CONTEXT โ€” the complete security context. the whole package. don't skimp on it โœจ
  • -c, --compute โ€” computes the process transition context before modifying. like checking the fit before you commit to the outfit ๐Ÿ’…
  • -t, --type=TYPE โ€” the type (for the same role as the parent). yes, only for the same role as parent, don't @ me ๐Ÿ™ˆ
  • -u, --user=USER โ€” the user identity. who's wearing this context? ๐Ÿ”ฅ
  • -r, --role=ROLE โ€” the role. very main character energy ๐ŸŒŸ
  • -l, --range=RANGE โ€” the levelrange. the vibe range, if you will ๐ŸŒˆ
  • --help โ€” displays this help and exits. your bestie when you're lost ๐Ÿซถ
  • --version โ€” outputs version information and exits. so you know which era of coreutils you're in โญ

๐Ÿ’€ Exit status: ๐Ÿ’€

  • 125 โ€” if the runcon command itself fails. it's not you, it's... actually no, it's runcon ๐Ÿ˜ญ
  • 126 โ€” if COMMAND is found but cannot be invoked. found her but she refuses to come out ๐Ÿ’€
  • 127 โ€” if COMMAND cannot be found. she's literally not here, bestie ๐Ÿซ 
  • - โ€” the exit status of COMMAND otherwise. whatever the command said, that's the answer โœจ

๐Ÿฆ‹ AUTHOR ๐Ÿฆ‹

Written by Russell Coker. we stan ๐Ÿซถ


๐ŸŽ€ REPORTING BUGS ๐ŸŽ€

Found a bug? do NOT suffer in silence, bestie, report it:


Copyright ยฉ 2025 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.

This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ngl that's the whole deal, no hidden fine print ๐Ÿซถ


โญ SEE ALSO โญ

iykyk ๐Ÿ’œ


okay that's the whole page, bestie ๐Ÿ’– this was runcon(1) โ€” from GNU coreutils 9.8, dated September 2025, footer reading RUNCON(1) and everything. now go run something in a new security context and slay โœจ๐Ÿ’…๐ŸŽ€

๐Ÿ“ฆ where this page comes from