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 therunconcommand itself fails. it's not you, it's... actually no, it'sruncon๐ญ126โ ifCOMMANDis found but cannot be invoked. found her but she refuses to come out ๐127โ ifCOMMANDcannot be found. she's literally not here, bestie ๐ซ-โ the exit status ofCOMMANDotherwise. 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:
- Report bugs to:
bug-coreutils@gnu.org - GNU coreutils home page: <https://www.gnu.org/software/coreutils/>
- General help using GNU software: <https://www.gnu.org/gethelp/>
- Report any translation bugs to <https://translationproject.org/team/>
๐ COPYRIGHT ๐
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 โญ
- Full documentation <https://www.gnu.org/software/coreutils/runcon>
- or available locally via:
info '(coreutils) runcon invocation'
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
- alpine 3.23: coreutils-doc 9.8-r1 ยท GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms