puppet 0.9.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (182) hide show
  1. data/CHANGELOG +0 -0
  2. data/COPYING +340 -0
  3. data/LICENSE +17 -0
  4. data/README +24 -0
  5. data/Rakefile +294 -0
  6. data/TODO +4 -0
  7. data/bin/cf2puppet +186 -0
  8. data/bin/puppet +176 -0
  9. data/bin/puppetca +213 -0
  10. data/bin/puppetd +246 -0
  11. data/bin/puppetdoc +184 -0
  12. data/bin/puppetmasterd +258 -0
  13. data/examples/code/allatonce +13 -0
  14. data/examples/code/assignments +11 -0
  15. data/examples/code/classing +35 -0
  16. data/examples/code/components +73 -0
  17. data/examples/code/execs +16 -0
  18. data/examples/code/failers/badclassnoparam +10 -0
  19. data/examples/code/failers/badclassparam +10 -0
  20. data/examples/code/failers/badcompnoparam +9 -0
  21. data/examples/code/failers/badcompparam +9 -0
  22. data/examples/code/failers/badtypeparam +3 -0
  23. data/examples/code/file.bl +11 -0
  24. data/examples/code/filedefaults +10 -0
  25. data/examples/code/fileparsing +116 -0
  26. data/examples/code/filerecursion +15 -0
  27. data/examples/code/functions +3 -0
  28. data/examples/code/groups +7 -0
  29. data/examples/code/head +30 -0
  30. data/examples/code/importing +8 -0
  31. data/examples/code/nodes +20 -0
  32. data/examples/code/one +8 -0
  33. data/examples/code/relationships +34 -0
  34. data/examples/code/selectors +28 -0
  35. data/examples/code/simpletests +11 -0
  36. data/examples/code/snippets/argumentdefaults +14 -0
  37. data/examples/code/snippets/casestatement +39 -0
  38. data/examples/code/snippets/classheirarchy.pp +15 -0
  39. data/examples/code/snippets/classincludes.pp +17 -0
  40. data/examples/code/snippets/classpathtest +11 -0
  41. data/examples/code/snippets/dirchmod +19 -0
  42. data/examples/code/snippets/failmissingexecpath.pp +13 -0
  43. data/examples/code/snippets/falsevalues.pp +3 -0
  44. data/examples/code/snippets/filecreate +11 -0
  45. data/examples/code/snippets/implicititeration +15 -0
  46. data/examples/code/snippets/multipleinstances +7 -0
  47. data/examples/code/snippets/namevartest +9 -0
  48. data/examples/code/snippets/scopetest +13 -0
  49. data/examples/code/snippets/selectorvalues.pp +22 -0
  50. data/examples/code/snippets/simpledefaults +5 -0
  51. data/examples/code/snippets/simpleselector +38 -0
  52. data/examples/code/svncommit +13 -0
  53. data/examples/root/bin/sleeper +69 -0
  54. data/examples/root/etc/configfile +0 -0
  55. data/examples/root/etc/debian-passwd +29 -0
  56. data/examples/root/etc/debian-syslog.conf +71 -0
  57. data/examples/root/etc/init.d/sleeper +65 -0
  58. data/examples/root/etc/otherfile +0 -0
  59. data/examples/root/etc/puppet/fileserver.conf +3 -0
  60. data/examples/root/etc/puppet/puppetmasterd.conf +10 -0
  61. data/ext/module:puppet +195 -0
  62. data/install.rb +270 -0
  63. data/lib/puppet.rb +249 -0
  64. data/lib/puppet/base64.rb +19 -0
  65. data/lib/puppet/client.rb +519 -0
  66. data/lib/puppet/config.rb +49 -0
  67. data/lib/puppet/daemon.rb +208 -0
  68. data/lib/puppet/element.rb +71 -0
  69. data/lib/puppet/event.rb +259 -0
  70. data/lib/puppet/log.rb +321 -0
  71. data/lib/puppet/metric.rb +250 -0
  72. data/lib/puppet/parsedfile.rb +38 -0
  73. data/lib/puppet/parser/ast.rb +1560 -0
  74. data/lib/puppet/parser/interpreter.rb +150 -0
  75. data/lib/puppet/parser/lexer.rb +226 -0
  76. data/lib/puppet/parser/parser.rb +1354 -0
  77. data/lib/puppet/parser/scope.rb +755 -0
  78. data/lib/puppet/server.rb +170 -0
  79. data/lib/puppet/server/authstore.rb +227 -0
  80. data/lib/puppet/server/ca.rb +140 -0
  81. data/lib/puppet/server/filebucket.rb +147 -0
  82. data/lib/puppet/server/fileserver.rb +477 -0
  83. data/lib/puppet/server/logger.rb +43 -0
  84. data/lib/puppet/server/master.rb +103 -0
  85. data/lib/puppet/server/servlet.rb +247 -0
  86. data/lib/puppet/sslcertificates.rb +737 -0
  87. data/lib/puppet/statechange.rb +150 -0
  88. data/lib/puppet/storage.rb +95 -0
  89. data/lib/puppet/transaction.rb +179 -0
  90. data/lib/puppet/transportable.rb +151 -0
  91. data/lib/puppet/type.rb +1354 -0
  92. data/lib/puppet/type/component.rb +141 -0
  93. data/lib/puppet/type/cron.rb +543 -0
  94. data/lib/puppet/type/exec.rb +316 -0
  95. data/lib/puppet/type/group.rb +152 -0
  96. data/lib/puppet/type/nameservice.rb +3 -0
  97. data/lib/puppet/type/nameservice/netinfo.rb +173 -0
  98. data/lib/puppet/type/nameservice/objectadd.rb +146 -0
  99. data/lib/puppet/type/nameservice/posix.rb +200 -0
  100. data/lib/puppet/type/package.rb +420 -0
  101. data/lib/puppet/type/package/apt.rb +70 -0
  102. data/lib/puppet/type/package/dpkg.rb +108 -0
  103. data/lib/puppet/type/package/rpm.rb +81 -0
  104. data/lib/puppet/type/package/sun.rb +117 -0
  105. data/lib/puppet/type/package/yum.rb +58 -0
  106. data/lib/puppet/type/pfile.rb +569 -0
  107. data/lib/puppet/type/pfile/checksum.rb +219 -0
  108. data/lib/puppet/type/pfile/create.rb +108 -0
  109. data/lib/puppet/type/pfile/group.rb +129 -0
  110. data/lib/puppet/type/pfile/mode.rb +131 -0
  111. data/lib/puppet/type/pfile/source.rb +264 -0
  112. data/lib/puppet/type/pfile/type.rb +31 -0
  113. data/lib/puppet/type/pfile/uid.rb +166 -0
  114. data/lib/puppet/type/pfilebucket.rb +80 -0
  115. data/lib/puppet/type/pprocess.rb +97 -0
  116. data/lib/puppet/type/service.rb +347 -0
  117. data/lib/puppet/type/service/base.rb +17 -0
  118. data/lib/puppet/type/service/debian.rb +50 -0
  119. data/lib/puppet/type/service/init.rb +145 -0
  120. data/lib/puppet/type/service/smf.rb +29 -0
  121. data/lib/puppet/type/state.rb +182 -0
  122. data/lib/puppet/type/symlink.rb +183 -0
  123. data/lib/puppet/type/tidy.rb +183 -0
  124. data/lib/puppet/type/typegen.rb +149 -0
  125. data/lib/puppet/type/typegen/filerecord.rb +243 -0
  126. data/lib/puppet/type/typegen/filetype.rb +316 -0
  127. data/lib/puppet/type/user.rb +290 -0
  128. data/lib/puppet/util.rb +138 -0
  129. data/test/certmgr/certmgr.rb +265 -0
  130. data/test/client/client.rb +203 -0
  131. data/test/executables/puppetbin.rb +53 -0
  132. data/test/executables/puppetca.rb +79 -0
  133. data/test/executables/puppetd.rb +71 -0
  134. data/test/executables/puppetmasterd.rb +153 -0
  135. data/test/executables/puppetmodule.rb +60 -0
  136. data/test/language/ast.rb +412 -0
  137. data/test/language/interpreter.rb +71 -0
  138. data/test/language/scope.rb +412 -0
  139. data/test/language/snippets.rb +445 -0
  140. data/test/other/events.rb +111 -0
  141. data/test/other/log.rb +195 -0
  142. data/test/other/metrics.rb +92 -0
  143. data/test/other/overrides.rb +115 -0
  144. data/test/other/parsedfile.rb +31 -0
  145. data/test/other/relationships.rb +113 -0
  146. data/test/other/state.rb +106 -0
  147. data/test/other/storage.rb +39 -0
  148. data/test/other/transactions.rb +235 -0
  149. data/test/parser/lexer.rb +120 -0
  150. data/test/parser/parser.rb +180 -0
  151. data/test/puppet/conffiles.rb +104 -0
  152. data/test/puppet/defaults.rb +100 -0
  153. data/test/puppet/error.rb +23 -0
  154. data/test/puppet/utiltest.rb +120 -0
  155. data/test/puppettest.rb +774 -0
  156. data/test/server/authstore.rb +209 -0
  157. data/test/server/bucket.rb +227 -0
  158. data/test/server/ca.rb +201 -0
  159. data/test/server/fileserver.rb +710 -0
  160. data/test/server/logger.rb +175 -0
  161. data/test/server/master.rb +150 -0
  162. data/test/server/server.rb +130 -0
  163. data/test/tagging/tagging.rb +80 -0
  164. data/test/test +51 -0
  165. data/test/types/basic.rb +119 -0
  166. data/test/types/component.rb +272 -0
  167. data/test/types/cron.rb +261 -0
  168. data/test/types/exec.rb +273 -0
  169. data/test/types/file.rb +616 -0
  170. data/test/types/filebucket.rb +167 -0
  171. data/test/types/fileignoresource.rb +287 -0
  172. data/test/types/filesources.rb +587 -0
  173. data/test/types/filetype.rb +162 -0
  174. data/test/types/group.rb +271 -0
  175. data/test/types/package.rb +205 -0
  176. data/test/types/query.rb +101 -0
  177. data/test/types/service.rb +100 -0
  178. data/test/types/symlink.rb +93 -0
  179. data/test/types/tidy.rb +124 -0
  180. data/test/types/type.rb +135 -0
  181. data/test/types/user.rb +371 -0
  182. metadata +243 -0
@@ -0,0 +1,34 @@
1
+ # $Id: relationships 576 2005-08-23 16:09:14Z luke $
2
+
3
+ #service.setpath("../examples/root/etc/init.d")
4
+ #puppet.statefile("/tmp/puppetstate")
5
+ $path = "../examples/root/etc/configfile"
6
+ path => "../examples/root/etc/init.d"
7
+
8
+
9
+ define files {
10
+ file { "/tmp/yaytest":
11
+ create => true,
12
+ mode => 755
13
+ }
14
+ file { "/tmp/exists":
15
+ checksum => md5
16
+ }
17
+ }
18
+
19
+ define sleeper {
20
+ file { $path:
21
+ mode => 755
22
+ }
23
+ service { sleeper:
24
+ path => "../examples/root/etc/init.d",
25
+ running => 1
26
+ }
27
+ }
28
+
29
+ files { }
30
+
31
+ sleeper {
32
+ require => files["yay"],
33
+ schedule => true
34
+ }
@@ -0,0 +1,28 @@
1
+ # $Id: selectors 599 2005-08-29 21:03:46Z luke $
2
+ #
3
+
4
+ $platform = SunOS
5
+
6
+ $funtest = $platform ? {
7
+ SunOS => yayness,
8
+ AIX => goodness,
9
+ default => badness
10
+ }
11
+
12
+ # this is a comment
13
+
14
+ $filename = "/tmp/yayness"
15
+
16
+ $sleeper = file { $filename:
17
+ mode => $platform ? {
18
+ SunOS => 644,
19
+ default => 755
20
+ },
21
+ create => $platform ? "SunOS" => true
22
+ }
23
+
24
+ # i guess it has to be solved this way...
25
+
26
+ #$platform ? sunos => file { $filename:
27
+ # mode => 644
28
+ #}
@@ -0,0 +1,11 @@
1
+ # $Id: simpletests 576 2005-08-23 16:09:14Z luke $
2
+
3
+ file {
4
+ "/tmp/atest": create => true;
5
+ "/tmp/btest": create => true
6
+ }
7
+
8
+ file {
9
+ "/tmp/ctest": create => true;
10
+ "/tmp/dtest": create => true;
11
+ }
@@ -0,0 +1,14 @@
1
+ # $Id: argumentdefaults 576 2005-08-23 16:09:14Z luke $
2
+
3
+ define testargs(file, mode = 755) {
4
+ file { $file: create => true, mode => $mode }
5
+ }
6
+
7
+ testargs { "testingname":
8
+ file => "/tmp/argumenttest1"
9
+ }
10
+
11
+ testargs { "testingother":
12
+ file => "/tmp/argumenttest2",
13
+ mode => 644
14
+ }
@@ -0,0 +1,39 @@
1
+ # $Id: casestatement 587 2005-08-24 02:53:17Z luke $
2
+
3
+ $var = "value"
4
+
5
+ case $var {
6
+ "nope": {
7
+ file { "/tmp/fakefile": mode => 644, create => true }
8
+ }
9
+ "value": {
10
+ file { "/tmp/existsfile": mode => 755, create => true }
11
+ }
12
+ }
13
+
14
+ $ovar = "yayness"
15
+
16
+ case $ovar {
17
+ "fooness": {
18
+ file { "/tmp/nostillexistsfile": mode => 644, create => true }
19
+ }
20
+ "booness", "yayness": {
21
+ case $var {
22
+ "nep": {
23
+ file { "/tmp/noexistsfile": mode => 644, create => true }
24
+ }
25
+ "value": {
26
+ file { "/tmp/existsfile2": mode => 755, create => true }
27
+ }
28
+ }
29
+ }
30
+ }
31
+
32
+ case $ovar {
33
+ "fooness": {
34
+ file { "/tmp/nostillexistsfile": mode => 644, create => true }
35
+ }
36
+ default: {
37
+ file { "/tmp/existsfile3": mode => 755, create => true }
38
+ }
39
+ }
@@ -0,0 +1,15 @@
1
+ # $Id: classheirarchy.pp 700 2005-09-22 23:24:20Z luke $
2
+
3
+ class base {
4
+ file { "/tmp/classheir1": create => true, mode => 755 }
5
+ }
6
+
7
+ class sub1 inherits base {
8
+ file { "/tmp/classheir2": create => true, mode => 755 }
9
+ }
10
+
11
+ class sub2 inherits base {
12
+ file { "/tmp/classheir3": create => true, mode => 755 }
13
+ }
14
+
15
+ include sub1, sub2
@@ -0,0 +1,17 @@
1
+ # $Id: classincludes.pp 708 2005-09-28 17:25:02Z luke $
2
+
3
+ class base {
4
+ file { "/tmp/classincludes1": create => true, mode => 755 }
5
+ }
6
+
7
+ class sub1 inherits base {
8
+ file { "/tmp/classincludes2": create => true, mode => 755 }
9
+ }
10
+
11
+ class sub2 inherits base {
12
+ file { "/tmp/classincludes3": create => true, mode => 755 }
13
+ }
14
+
15
+ $sub = "sub2"
16
+
17
+ include sub1, $sub
@@ -0,0 +1,11 @@
1
+ # $Id: classpathtest 700 2005-09-22 23:24:20Z luke $
2
+
3
+ define component {
4
+ file { "/tmp/classtest": create => true, mode => 755 }
5
+ }
6
+
7
+ class testing {
8
+ component { "componentname": }
9
+ }
10
+
11
+ include testing
@@ -0,0 +1,19 @@
1
+ # $Id: dirchmod 576 2005-08-23 16:09:14Z luke $
2
+
3
+ file {
4
+ "/tmp/dirchmodtesta": create => directory;
5
+ "/tmp/dirchmodtesta/testing": create => true
6
+ }
7
+
8
+ file { "/tmp/dirchmodtesta":
9
+ mode => 644, recurse => true
10
+ }
11
+
12
+ file {
13
+ "/tmp/dirchmodtestb": create => directory;
14
+ "/tmp/dirchmodtestb/testing": create => true
15
+ }
16
+
17
+ file { "/tmp/dirchmodtestb":
18
+ mode => 600, recurse => true
19
+ }
@@ -0,0 +1,13 @@
1
+ define distloc(path) {
2
+ file { "/tmp/exectesting1":
3
+ create => file
4
+ }
5
+ exec { "touch $path":
6
+ subscribe => file["/tmp/exectesting1"],
7
+ refreshonly => true
8
+ }
9
+ }
10
+
11
+ distloc {
12
+ path => "/tmp/execdisttesting",
13
+ }
@@ -0,0 +1,3 @@
1
+ $value = false
2
+
3
+ file { "/tmp/falsevalues$value": create => true }
@@ -0,0 +1,11 @@
1
+ # $Id: filecreate 576 2005-08-23 16:09:14Z luke $
2
+
3
+ file {
4
+ "/tmp/createatest": create => true, mode => 755;
5
+ "/tmp/createbtest": create => true, mode => 755
6
+ }
7
+
8
+ file {
9
+ "/tmp/createctest": create => true;
10
+ "/tmp/createdtest": create => true;
11
+ }
@@ -0,0 +1,15 @@
1
+ # $Id: implicititeration 589 2005-08-25 20:54:16Z luke $
2
+
3
+ $files = ["/tmp/iterationatest", "/tmp/iterationbtest"]
4
+
5
+ file { $files: create => true, mode => 755 }
6
+
7
+ file { ["/tmp/iterationctest", "/tmp/iterationdtest"]:
8
+ create => true,
9
+ mode => 755
10
+ }
11
+
12
+ file {
13
+ ["/tmp/iterationetest", "/tmp/iterationftest"]: create => true, mode => 755;
14
+ ["/tmp/iterationgtest", "/tmp/iterationhtest"]: create => true, mode => 755;
15
+ }
@@ -0,0 +1,7 @@
1
+ # $Id: multipleinstances 589 2005-08-25 20:54:16Z luke $
2
+
3
+ file {
4
+ "/tmp/multipleinstancesa": create => true, mode => 755;
5
+ "/tmp/multipleinstancesb": create => true, mode => 755;
6
+ "/tmp/multipleinstancesc": create => true, mode => 755;
7
+ }
@@ -0,0 +1,9 @@
1
+ define filetest(mode, create = true) {
2
+ file { $name:
3
+ mode => $mode,
4
+ create => $create
5
+ }
6
+ }
7
+
8
+ filetest { "/tmp/testfiletest": mode => 644}
9
+ filetest { "/tmp/testdirtest": mode => 755, create => directory}
@@ -0,0 +1,13 @@
1
+
2
+ $mode = 640
3
+
4
+ define thing {
5
+ file { "/tmp/scopetest": create => true, mode => $mode }
6
+ }
7
+
8
+ class testing {
9
+ $mode = 755
10
+ thing {}
11
+ }
12
+
13
+ include testing
@@ -0,0 +1,22 @@
1
+ $value1 = ""
2
+ $value2 = true
3
+ $value3 = false
4
+
5
+ $mode1 = $value1 ? {
6
+ "" => 755,
7
+ default => 644
8
+ }
9
+
10
+ $mode2 = $value2 ? {
11
+ true => 755,
12
+ default => 644
13
+ }
14
+
15
+ $mode3 = $value3 ? {
16
+ false => 755,
17
+ default => 644
18
+ }
19
+
20
+ file { "/tmp/selectorvalues1": create => true, mode => $mode1 }
21
+ file { "/tmp/selectorvalues2": create => true, mode => $mode2 }
22
+ file { "/tmp/selectorvalues3": create => true, mode => $mode3 }
@@ -0,0 +1,5 @@
1
+ # $Id: simpledefaults 576 2005-08-23 16:09:14Z luke $
2
+
3
+ File { mode => 755 }
4
+
5
+ file { "/tmp/defaulttest": create => true }
@@ -0,0 +1,38 @@
1
+ # $Id: simpleselector 576 2005-08-23 16:09:14Z luke $
2
+
3
+ $var = "value"
4
+
5
+ file { "/tmp/snippetselectatest":
6
+ create => true,
7
+ mode => $var ? {
8
+ nottrue => 641,
9
+ value => 755
10
+ }
11
+ }
12
+
13
+ file { "/tmp/snippetselectbtest":
14
+ create => true,
15
+ mode => $var ? {
16
+ nottrue => 644,
17
+ default => 755
18
+ }
19
+ }
20
+
21
+ $othervar = "complex value"
22
+
23
+ file { "/tmp/snippetselectctest":
24
+ create => true,
25
+ mode => $othervar ? {
26
+ "complex value" => 755,
27
+ default => 644
28
+ }
29
+ }
30
+ $anothervar = Yayness
31
+
32
+ file { "/tmp/snippetselectdtest":
33
+ create => true,
34
+ mode => $anothervar ? {
35
+ Yayness => 755,
36
+ default => 644
37
+ }
38
+ }
@@ -0,0 +1,13 @@
1
+ $path = "/usr/bin:/bin"
2
+
3
+ file { "/tmp/svntests":
4
+ recurse => true,
5
+ checksum => md5
6
+ }
7
+
8
+ exec { "echo 'files have been updated'":
9
+ cwd => "/tmp/svntests",
10
+ refreshonly => true,
11
+ require => file["/tmp/svntests"],
12
+ path => $path
13
+ }
@@ -0,0 +1,69 @@
1
+ #!/usr/bin/ruby -w
2
+
3
+ ###
4
+ # sleep indefinitely as a debug
5
+
6
+ require 'getoptlong'
7
+
8
+ #-----------------------------------------------------------------
9
+ def daemonize
10
+ outfile = "/tmp/sleeperout"
11
+ if pid = fork()
12
+ Process.detach(pid)
13
+ sleep 1
14
+ # verify that we didn't have any problems starting the daemon
15
+ if FileTest.exists?(outfile)
16
+ $stderr.puts "Sleeper failed: %s" % File.read(outfile)
17
+ File.unlink(outfile)
18
+ exit(14)
19
+ else
20
+ exit(0)
21
+ end
22
+ end
23
+ Process.setsid
24
+ Dir.chdir("/")
25
+ begin
26
+ $stdin.reopen "/dev/null"
27
+ $stdout.reopen "/dev/null", "a"
28
+ $stderr.reopen $stdin
29
+ rescue => detail
30
+ File.open(outfile, "w") { |f|
31
+ f.puts detail
32
+ }
33
+ exit(12)
34
+ end
35
+ end
36
+ #-----------------------------------------------------------------
37
+
38
+ debug = false
39
+
40
+ result = GetoptLong.new(
41
+ [ "--debug", "-d", GetoptLong::NO_ARGUMENT ],
42
+ [ "--help", "-h", GetoptLong::NO_ARGUMENT ]
43
+ )
44
+
45
+ result.each { |opt,arg|
46
+ case opt
47
+ when "--help"
48
+ puts "There is no help yet"
49
+ exit
50
+ when "--debug"
51
+ debug = true
52
+ else
53
+ raise "Invalid option '#{opt}'"
54
+ end
55
+ }
56
+
57
+ trap(:INT) {
58
+ exit
59
+ }
60
+
61
+ unless debug
62
+ daemonize()
63
+ end
64
+
65
+ var = true
66
+
67
+ while var do
68
+ sleep 600
69
+ end
File without changes
@@ -0,0 +1,29 @@
1
+ root:x:0:0:root:/root:/bin/bash
2
+ daemon:x:1:1:daemon:/usr/sbin:/bin/sh
3
+ bin:x:2:2:bin:/bin:/bin/sh
4
+ sys:x:3:3:sys:/dev:/bin/sh
5
+ sync:x:4:65534:sync:/bin:/bin/sync
6
+ games:x:5:60:games:/usr/games:/bin/sh
7
+ man:x:6:12:man:/var/cache/man:/bin/sh
8
+ lp:x:7:7:lp:/var/spool/lpd:/bin/sh
9
+ mail:x:8:8:mail:/var/mail:/bin/sh
10
+ news:x:9:9:news:/var/spool/news:/bin/sh
11
+ uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
12
+ proxy:x:13:13:proxy:/bin:/bin/sh
13
+ postgres:x:31:32:postgres:/var/lib/postgres:/bin/sh
14
+ www-data:x:33:33:www-data:/var/www:/bin/sh
15
+ backup:x:34:34:backup:/var/backups:/bin/sh
16
+ operator:x:37:37:Operator:/var:/bin/sh
17
+ list:x:38:38:Mailing List Manager:/var/list:/bin/sh
18
+ irc:x:39:39:ircd:/var/run/ircd:/bin/sh
19
+ gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
20
+ nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
21
+ sshd:x:102:65534::/var/run/sshd:/bin/false
22
+ gdm:x:101:101:Gnome Display Manager:/var/lib/gdm:/bin/false
23
+ telnetd:x:103:103::/usr/lib/telnetd:/bin/false
24
+ nagios:x:1000:1001::/home/nagios:
25
+ messagebus:x:104:107::/var/run/dbus:/bin/false
26
+ saned:x:109:109::/home/saned:/bin/false
27
+ ganglia:x:105:110:Ganglia Monitor:/var/lib/ganglia:/bin/false
28
+ zope:x:106:111::/var/lib/zope2.7/var:/bin/false
29
+ fbgetty:x:112:112::/home/fbgetty:/bin/false