PHP 8.1.33
Preview: purge-nobody-user Size: 2.30 KB
/usr/lib/systemd/purge-nobody-user

#!/bin/bash -eu

if [ $UID -ne 0 ]; then
    echo "WARNING: This script needs to run as root to be effective"
    exit 1
fi

export SYSTEMD_NSS_BYPASS_SYNTHETIC=1

if [ "${1:-}" = "--ignore-journal" ]; then
    shift
    ignore_journal=1
else
    ignore_journal=0
fi

echo "Checking processes..."
if ps h -u 99 | grep .; then
    echo "ERROR: ps reports processes with UID 99!"
    exit 2
fi
echo "... not found"

echo "Checking UTMP..."
if w -h 199 | grep . ; then
    echo "ERROR: w reports UID 99 as active!"
    exit 2
fi
if w -h nobody | grep . ; then
    echo "ERROR: w reports user nobody as active!"
    exit 2
fi
echo "... not found"

echo "Checking the journal..."
if [ "$ignore_journal" = 0 ] && journalctl -q -b -n10 _UID=99 | grep . ; then
    echo "ERROR: journalctl reports messages from UID 99 in current boot!"
    exit 2
fi
echo "... not found"

echo "Looking for files in /etc, /run, /tmp, and /var..."
if find /etc /run /tmp /var -uid 99 -print | grep -m 10 . ; then
    echo "ERROR: found files belonging to UID 99"
    exit 2
fi
echo "... not found"

echo "Checking if nobody is defined correctly..."
if getent passwd nobody |
	grep '^nobody:[x*]:65534:65534:.*:/:/sbin/nologin';
then
    echo "OK, nothing to do."
    exit 0
else
    echo "NOTICE: User nobody is not defined correctly"
fi

echo "Checking if nfsnobody or something else is using the uid..."
if getent passwd 65534 | grep . ; then
    echo "NOTICE: will have to remove this user"
else
    echo "... not found"
fi

if [ "${1:-}" = "-x" ]; then
    if getent passwd nobody >/dev/null; then
	# this will remove both the user and the group.
	( set -x
   	  userdel nobody
	)
    fi

    if getent passwd 65534 >/dev/null; then
	# Make sure the uid is unused. This should free gid too.
	name="$(getent passwd 65534 | cut -d: -f1)"
	( set -x
	  userdel "$name"
	)
    fi

    if grep -qE '^(passwd|group):.*\bsss\b' /etc/nsswitch.conf; then
	echo "Sleeping, so sss can catch up"
	sleep 3
    fi

    if getent group 65534; then
	# Make sure the gid is unused, even if uid wasn't.
	name="$(getent group 65534 | cut -d: -f1)"
	( set -x
	  groupdel "$name"
	)
    fi

    # systemd-sysusers uses the same gid and uid
    ( set -x
      systemd-sysusers --inline 'u nobody 65534 "Kernel Overflow User" / /sbin/nologin'
    )
else
    echo "Pass '-x' to perform changes"
fi

Directory Contents

Dirs: 14 × Files: 46

Name Size Perms Modified Actions
boot DIR
- drwxr-xr-x 2025-04-22 01:58:45
Edit Download
catalog DIR
- drwxr-xr-x 2025-04-24 08:40:48
Edit Download
network DIR
- drwxr-xr-x 2025-04-24 08:40:54
Edit Download
- drwxr-xr-x 2024-11-07 09:38:46
Edit Download
portable DIR
- drwxr-xr-x 2025-04-22 01:58:46
Edit Download
system DIR
- drwxr-xr-x 2025-11-03 09:30:25
Edit Download
- drwxr-xr-x 2025-06-06 08:30:54
Edit Download
- drwxr-xr-x 2025-10-04 08:30:24
Edit Download
- drwxr-xr-x 2025-04-22 01:58:46
Edit Download
- drwxr-xr-x 2025-04-22 01:58:46
Edit Download
user DIR
- drwxr-xr-x 2025-10-28 08:30:28
Edit Download
- drwxr-xr-x 2025-04-24 08:40:48
Edit Download
- drwxr-xr-x 2025-04-22 01:58:46
Edit Download
- drwxr-xr-x 2025-04-24 08:40:48
Edit Download
2.63 MB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
37.00 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
2.30 KB lrwxr-xr-x 2025-04-22 01:58:47
Edit Download
678 B lrw-r--r-- 2018-06-22 11:11:49
Edit Download
1.53 MB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
11.88 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
24.74 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
16.70 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
12.01 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
61.17 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
28.74 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
16.02 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
41.18 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
24.73 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
20.43 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
12.01 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
28.91 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
20.44 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
154.41 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
49.18 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
265.31 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
12.41 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
20.42 KB lrwxr-xr-x 2025-04-22 01:58:56
Edit Download
89.91 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
20.88 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
12.29 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
16.01 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
24.54 KB lrwxr-xr-x 2025-04-22 01:58:56
Edit Download
12.00 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
452.76 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
24.73 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
61.20 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
20.77 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
24.55 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
16.02 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
20.77 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
0 B ?????????? 2025-11-05 03:37:32
Edit Download
36.95 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
408.55 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
12.43 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
16.02 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
245.10 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
11.86 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
20.46 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
12.01 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download
12.01 KB lrwxr-xr-x 2025-04-22 01:58:57
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).