File: drbl-get-common-username

package info (click to toggle)
drbl 5.8.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,996 kB
  • sloc: sh: 43,555; perl: 8,820; xml: 867; makefile: 135
file content (40 lines) | stat: -rwxr-xr-x 1,277 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
# Author: Steven Shiau <steven _at_ clonezilla org>, Ceasar Sun <ceasar _at_ nchc org tw>
# License: GPL
# Description: Get the common users name (not system related users name)

export LC_ALL=C

#uid_tmp="$(mktemp /tmp/uid_tmp.XXXXXX)"
# We can get the minum UID of YP from /var/yp/Makefile
#grep -E "^MINUID=" /var/yp/Makefile 2>/dev/null > $uid_tmp
#. $uid_tmp
#[ -f $uid_tmp ] && rm -f $uid_tmp

MINUID="$(LC_ALL=C grep -E '^UID_MIN\s+[0-9]+' /etc/login.defs | sed -e 's/^UID_MIN//')"

# If we can not find minum UID of YP from /var/yp/Makefile, we use specific rules.
if [ -z "$MINUID" ]; then
  if [ -e /etc/debian_version ]; then
    # For Debian, the common users uid start from 1000
    MINUID="1000"
  elif [ -e /etc/SuSE-release ]; then
    # SuSE
    # the common users uid start from 1000
    MINUID="1000"
  else
    # For RH-like, the common users uid start from 500
    MINUID="500"
  fi
fi

users="$(awk -F":" "\$3 >= $MINUID {print \$1}" /etc/passwd)"

# Remove account "nobody" from the list if it exists, we need nobody as local account. Since some services are started with nobody, and it is started before nis/yp is started.
users="$(echo $users | sed -e "s/nobody//g")"

# if not found, return 1
[ -z "$users" ] && exit 1

echo $users
exit 0