mirror of
https://github.com/Stichting-MINIX-Research-Foundation/pkgsrc-ng.git
synced 2025-08-04 02:08:49 -04:00
53 lines
1.1 KiB
Bash
Executable File
53 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# $NetBSD: userdel.sh,v 1.4 2013/03/13 12:35:16 obache Exp $
|
|
|
|
export PATH=/bin:"$(/bin/cygpath -S)"
|
|
|
|
show_usage () {
|
|
echo "usage: $0 [-rv] user" >&2
|
|
exit 1
|
|
}
|
|
|
|
verbose=false
|
|
run_cmd () {
|
|
if $verbose; then printf '%s\n' "+ $*" >&2; fi
|
|
"$@"
|
|
}
|
|
|
|
remove_home_dir=false
|
|
user_is_group=false
|
|
|
|
while getopts 'prv' f; do
|
|
case $f in
|
|
p) echo "$0: cannot yet lock out user with -p; aborting" >&2; exit 1;;
|
|
r) remove_home_dir=true;;
|
|
v) verbose=true;;
|
|
\?) show_usage;;
|
|
esac
|
|
done
|
|
shift $(($OPTIND - 1))
|
|
|
|
if [ $# -ne 1 ]; then show_usage; fi
|
|
$verbose || exec >/dev/null
|
|
|
|
if ! net user $1 >/dev/null 2>&1; then
|
|
if ! net localgroup $1 >/dev/null 2>&1; then
|
|
echo "$0: user $1 does not exist" >&2; exit 1
|
|
else
|
|
user_is_group=true
|
|
fi
|
|
fi
|
|
|
|
if $remove_home_dir; then
|
|
home_dir="$(eval "echo ~$1")"
|
|
|
|
case "$home_dir" in
|
|
/) echo "$0: user $1 has no home directory; ignoring remove request" >&2;;
|
|
/*/*) rm -rf "$home_dir";;
|
|
*) echo "$0: could not delete home directory '$home_dir'; aborting" >&2; exit 1;;
|
|
esac
|
|
fi
|
|
|
|
$user_is_group || run_cmd net user $1 /delete || exit 1
|
|
/bin/sed -i -e "/^$1.*/d" /etc/passwd
|