This file is indexed.

/usr/share/augeas/lenses/dist/passwd.aug is in augeas-lenses 1.10.1-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
(*
 Module: Passwd
 Parses /etc/passwd

 Author: Free Ekanayaka <free@64studio.com>

 About: Reference
        - man 5 passwd
        - man 3 getpwnam

 Each line in the unix passwd file represents a single user record, whose
 colon-separated attributes correspond to the members of the passwd struct

*)

module Passwd =

   autoload xfm

(************************************************************************
 * Group:                    USEFUL PRIMITIVES
 *************************************************************************)

(* Group: Comments and empty lines *)

let eol        = Util.eol
let comment    = Util.comment
let empty      = Util.empty
let dels       = Util.del_str

let word       = Rx.word
let integer    = Rx.integer

let colon      = Sep.colon

let sto_to_eol = store Rx.space_in
let sto_to_col = store /[^:\r\n]+/
(* Store an empty string if nothing matches *)
let sto_to_col_or_empty = store /[^:\r\n]*/

(************************************************************************
 * Group:                        ENTRIES
 *************************************************************************)

let username  = /[_.A-Za-z0-9][-_.A-Za-z0-9]*\$?/

(* View: password
        pw_passwd *)
let password  = [ label "password" . sto_to_col?   . colon ]

(* View: uid
        pw_uid *)
let uid       = [ label "uid"      . store integer . colon ]

(* View: gid
        pw_gid *)
let gid       = [ label "gid"      . store integer . colon ]

(* View: name
        pw_gecos; the user's full name *)
let name      = [ label "name"     . sto_to_col? . colon ]

(* View: home
        pw_dir *)
let home      = [ label "home"     . sto_to_col?   . colon ]

(* View: shell
        pw_shell *)
let shell     = [ label "shell"    . sto_to_eol? ]

(* View: entry
        struct passwd *)
let entry     = [ key username
                . colon
                . password
                . uid
                . gid
                . name
                . home
                . shell
                . eol ]

(* NIS entries *)
let niscommon =  [ label "password" . sto_to_col ]?    . colon
               . [ label "uid"      . store integer ]? . colon
               . [ label "gid"      . store integer ]? . colon
               . [ label "name"     . sto_to_col ]?    . colon
               . [ label "home"     . sto_to_col ]?    . colon
               . [ label "shell"    . sto_to_eol ]?

let nisentry =
  let overrides =
        colon
      . niscommon in
  [ dels "+@" . label "@nis" . store username . overrides . eol ]

let nisuserplus =
  let overrides =
        colon
      . niscommon in
  [ dels "+" . label "@+nisuser" . store username . overrides . eol ]

let nisuserminus =
  let overrides =
        colon
      . niscommon in
  [ dels "-" . label "@-nisuser" . store username . overrides . eol ]

let nisdefault =
  let overrides =
        colon
      . [ label "password" . sto_to_col_or_empty . colon ]
      . [ label "uid"      . store integer? . colon ]
      . [ label "gid"      . store integer? . colon ]
      . [ label "name"     . sto_to_col?    . colon ]
      . [ label "home"     . sto_to_col?    . colon ]
      . [ label "shell"    . sto_to_eol? ] in
  [ dels "+" . label "@nisdefault" . overrides? . eol ]

(************************************************************************
 *                                LENS
 *************************************************************************)

let lns        = (comment|empty|entry|nisentry|nisdefault|nisuserplus|nisuserminus) *

let filter     = incl "/etc/passwd"

let xfm        = transform lns filter