Fixes: https://tracker.ceph.com/issues/53572
Perform a check if cephadm is root after the CLI arguments are parsed
but before logging is configured. This allows a user to get help on
cephadm without requiring to be root or use sudo, etc.
The root check must be done before logging is configured because the
logging set up function creates dirs and files in system dirs.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit
6f01977a68c3a2bba7bf2dfb7322728e7da96d0d)
logger.debug('%s\ncephadm %s' % ('-' * 80, args))
-def main() -> None:
-
- # root?
+def cephadm_require_root() -> None:
+ """Exit if the process is not running as root."""
if os.geteuid() != 0:
sys.stderr.write('ERROR: cephadm should be run as root\n')
sys.exit(1)
+
+def main() -> None:
av: List[str] = []
av = sys.argv[1:]
sys.stderr.write('No command specified; pass -h or --help for usage\n')
sys.exit(1)
+ cephadm_require_root()
cephadm_init_logging(ctx, av)
try:
# podman or docker?