File: make-sysusers-basic

package info (click to toggle)
systemd 260.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 115,380 kB
  • sloc: ansic: 741,720; xml: 122,315; sh: 36,676; python: 36,497; cpp: 947; makefile: 277; awk: 126; lisp: 13; sed: 1
file content (21 lines) | stat: -rwxr-xr-x 847 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/sh
# generate a sysusers.d(5) file from Debian's static master passwd/group files
set -eu

echo '# generated from /usr/share/base-passwd/{passwd,group}.master'

# only take groups whose name+gid != the corresponding user in passwd.master
export IFS=:
while read name _ id _; do
    if ! grep -q "^$name:\*:$id:$id:" /usr/share/base-passwd/passwd.master; then
        printf "g %-10s %-5s -\n" $name $id
    fi
done < /usr/share/base-passwd/group.master

# requested by the CUPS maintainer https://salsa.debian.org/printing-team/cups/-/merge_requests/11#note_737578
echo "g lpadmin"

echo

# treat "nobody:nogroup" specially: same ID, but different name, so prevent creating a "nobody" group
awk -F:  '{ i = ($3 == $4 && $4 != 65534) ? $3 : $3":"$4; printf("u %-10s %-7s - %-20s %s\n", $1,i,$6,$7) }'  < /usr/share/base-passwd/passwd.master