really(8)
π really(8) β the manual page, but make it cute π
System Manager's Manual β¨ really(8) β yes bestie, that's the whole name, no cap.
β¨ NAME β¨
really β gain privilege, or run commands as a different user π«Ά
πΈ SYNOPSIS πΈ
really [options] [command args... ]
π¦ DESCRIPTION π¦
okay so here's the vibe. really first checks whether the caller is allowed, and if it is, it changes its uids and gids (and maybe the root directory too, depending on your options) and then executes the command you told it to run. periodt. π
If you specify no options, the uid gets set to 0, and the gids and root directory are just left unchanged. lowkey the simplest possible thing. β¨
If you specify no command, really will run $SHELL -i. iconic default behaviour honestly.
Now β who's allowed? A caller is allowed if it has write access to /etc/inittab and is also a member of the group root. π the way that this is most easily achieved: make inittab group-writeable by some suitable group containing all the appropriate users, and make /etc/inittab group-owned by that group and group-writeable. The root group is perhaps a good choice if it isn't being used for anything else. iykyk π
π OPTIONS π
-uusername,--userusername β Sets the uid, gid, and supplementary group list, according to username's entry in the password and group databases. the full glow-up package π-iusername,--useronlyusername β Sets only the uid, according to username's entry in the password database. just the uid, nothing else, we're being minimal π§-Iuid,--uidonlyuid β Sets the uid to the numeric value uid (which need not correspond to any existing user in the password database). raw numbers, no lookup, we love that πΈ-ggroupname,--groupgroupname β groupname is looked up in the group database and its gid is appended to the process's supplementary groups list. If this is the first gid specified, it will also be set as the primary gid. first one takes the crown π-Ggid,--gidgid β gid is appended to the process's supplementary groups list. (gid need not correspond to any existing group in the group database.) If this is the first gid specified, it will also be set as the primary gid. same deal, numeric edition β-z,--groupsclearβ Clears the process's supplementary groups list. When using this option you must also specify-gor-G. The process's groups will then be exactly those specified. The relative position of-zin the argument list is not relevant. so it's a clean slate, and order literally doesn't matter π-Rroot-dir,--chrootroot-dir β The program will have its root directory set to root-dir.
β οΈ Do not use this option unless you know what you are doing. Unlikechroot(8), the current working directory will remain unchanged. This means that if the current directory isn't underneath the specified new root, the program will still be able to access files outside the new root by using relative pathnames. If this isn't what you want, please use thechrootutility instead. π¨ like, fr fr, read this part twice.
--β Indicates the end of the options. The next argument (if present) will be interpreted as the command name, even if it starts with a hyphen. the escape hatch bestie π«Ά
π₯ SECURITY CONSIDERATIONS π₯
really is designed so that installing it setuid root is extremely unlikely to compromise the security of any system. It will check using access(2) whether the real user is allowed to write to /etc/inittab, and if this check fails, really will exit without even attempting to parse its command line. no parsing, no drama, just gone πβ¨
really is not designed to be resistant to malicious command line arguments. Do not allow untrusted processes to pass options to really, or to specify the command to be run. Whether it is safe to allow relatively untrusted processes to pass options to the command which is to be run depends on the behaviour of that command and its security status. π
Attempting to use really to drop privilege is dangerous unless the calling environment is very well understood. There are many inherited process properties and resources which might be used by the callee to escalate its privilege to that of the (root-equivalent) caller. For this function, it is usually better to use userv if possible. π
π¨ bestie, this is the "do not do the sketchy thing" section. privilege dropping here is giving main character energy in a horror movie.
π ENVIRONMENT π
really does not manipulate the environment at all. The calling program is run in exactly the same environment as the caller passes to really. β¨
In particular, really will not add sbin directories to PATH, so really-enabled accounts will usually need to have these directories on their configured PATH to start with. no surprise PATH surgery here, you handle your own PATH π
SHELL is used to find the default shell to use in interactive mode (ie, when no command is specified). π
π AUTHOR π
This version of really was written by Ian Jackson <ian@chiark.greenend.org.uk>. π
It and this manpage are Copyright (C) 1992-5,2004,2013 Ian Jackson <ian@chiark.greenend.org.uk>.
really is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. π
really is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. β οΈ
You should have received a copy of the GNU General Public License along with this file; if not, consult the Free Software Foundation's website at www.fsf.org, or the GNU Project website at www.gnu.org. π«Ά
β AVAILABILITY β
really is currently part of chiark-utils and is available for download from ftp.chiark.greenend.org.uk in /users/ian/chiark-utils/, in source and pre-compiled binary form, and also from Ian Jackson's cvsweb. πΈ
π SEE ALSO π
userv(1), access(2), setresuid(2), setresgid(2), setgroups(2)
and that's the whole page bestie!! π this came from chiark-backup, dated 2001-10-21, and it lives at really(8) in the System Manager's Manual. slay, bye!! πβ¨π¦
π¦ where this page comes from
- debian bookworm: chiark-really 7.0.0
- debian trixie: chiark-really 8.0.1
- ubuntu jammy: chiark-really 6.1.2+nmu1
- ubuntu noble: chiark-really 7.0.0build2
- ubuntu questing: chiark-really 8.0.1
- ubuntu resolute: chiark-really 8.0.1build1
- ubuntu stonking: chiark-really 8.0.1build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms