| Line | |
|---|
| 1 | # id.awk --- implement id in awk
|
|---|
| 2 | #
|
|---|
| 3 | # Requires user and group library functions
|
|---|
| 4 | #
|
|---|
| 5 | # Arnold Robbins, [email protected], Public Domain
|
|---|
| 6 | # May 1993
|
|---|
| 7 | # Revised February 1996
|
|---|
| 8 |
|
|---|
| 9 | # output is:
|
|---|
| 10 | # uid=12(foo) euid=34(bar) gid=3(baz) \
|
|---|
| 11 | # egid=5(blat) groups=9(nine),2(two),1(one)
|
|---|
| 12 |
|
|---|
| 13 | BEGIN \
|
|---|
| 14 | {
|
|---|
| 15 | uid = PROCINFO["uid"]
|
|---|
| 16 | euid = PROCINFO["euid"]
|
|---|
| 17 | gid = PROCINFO["gid"]
|
|---|
| 18 | egid = PROCINFO["egid"]
|
|---|
| 19 |
|
|---|
| 20 | printf("uid=%d", uid)
|
|---|
| 21 | pw = getpwuid(uid)
|
|---|
| 22 | if (pw != "") {
|
|---|
| 23 | split(pw, a, ":")
|
|---|
| 24 | printf("(%s)", a[1])
|
|---|
| 25 | }
|
|---|
| 26 |
|
|---|
| 27 | if (euid != uid) {
|
|---|
| 28 | printf(" euid=%d", euid)
|
|---|
| 29 | pw = getpwuid(euid)
|
|---|
| 30 | if (pw != "") {
|
|---|
| 31 | split(pw, a, ":")
|
|---|
| 32 | printf("(%s)", a[1])
|
|---|
| 33 | }
|
|---|
| 34 | }
|
|---|
| 35 |
|
|---|
| 36 | printf(" gid=%d", gid)
|
|---|
| 37 | pw = getgrgid(gid)
|
|---|
| 38 | if (pw != "") {
|
|---|
| 39 | split(pw, a, ":")
|
|---|
| 40 | printf("(%s)", a[1])
|
|---|
| 41 | }
|
|---|
| 42 |
|
|---|
| 43 | if (egid != gid) {
|
|---|
| 44 | printf(" egid=%d", egid)
|
|---|
| 45 | pw = getgrgid(egid)
|
|---|
| 46 | if (pw != "") {
|
|---|
| 47 | split(pw, a, ":")
|
|---|
| 48 | printf("(%s)", a[1])
|
|---|
| 49 | }
|
|---|
| 50 | }
|
|---|
| 51 |
|
|---|
| 52 | for (i = 1; ("group" i) in PROCINFO; i++) {
|
|---|
| 53 | if (i == 1)
|
|---|
| 54 | printf(" groups=")
|
|---|
| 55 | group = PROCINFO["group" i]
|
|---|
| 56 | printf("%d", group)
|
|---|
| 57 | pw = getgrgid(group)
|
|---|
| 58 | if (pw != "") {
|
|---|
| 59 | split(pw, a, ":")
|
|---|
| 60 | printf("(%s)", a[1])
|
|---|
| 61 | }
|
|---|
| 62 | if (("group" (i+1)) in PROCINFO)
|
|---|
| 63 | printf(",")
|
|---|
| 64 | }
|
|---|
| 65 |
|
|---|
| 66 | print ""
|
|---|
| 67 | }
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.