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
|
<pre><tt><font color="#000000">01: </font><i><font color="#9A1900">#! /usr/bin/python</font></i>
<font color="#000000">02: </font>
<font color="#000000">03: </font><b><font color="#0000FF">import</font></b> posix
<font color="#000000">04: </font><b><font color="#0000FF">from</font></b> string <b><font color="#0000FF">import</font></b> splitfields
<font color="#000000">05: </font>
<font color="#000000">06: </font><b><font color="#0000FF">def</font></b> <b><font color="#000000">userinfo</font></b><font color="#990000">(</font>filename<font color="#990000">)</font><font color="#990000">:</font>
<font color="#000000">07: </font><i><font color="#9A1900"> """</font></i>
<font color="#000000">08: </font><i><font color="#9A1900"> This function returns the list of users</font></i>
<font color="#000000">09: </font><i><font color="#9A1900"> and a table containing users and their passwords</font></i>
<font color="#000000">10: </font><i><font color="#9A1900"> """</font></i>
<font color="#000000">11: </font> users<font color="#990000">,</font> table <font color="#990000">=</font> <font color="#990000">[</font><font color="#990000">]</font><font color="#990000">,</font> <font color="#990000">{</font><font color="#990000">}</font>
<font color="#000000">12: </font> file <font color="#990000">=</font> <b><font color="#000000">open</font></b><font color="#990000">(</font>filename<font color="#990000">,</font> <font color="#FF0000">'r'</font><font color="#990000">)</font>
<font color="#000000">13: </font> <b><font color="#0000FF">for</font></b> line <b><font color="#0000FF">in</font></b> file<font color="#990000">.</font><b><font color="#000000">readlines</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#990000">:</font>
<font color="#000000">14: </font> <font color="#990000">[</font>name<font color="#990000">,</font> password<font color="#990000">]</font> <font color="#990000">=</font> <b><font color="#000000">splitfields</font></b><font color="#990000">(</font>line<font color="#990000">,</font> <font color="#FF0000">':'</font><font color="#990000">)</font><font color="#990000">[</font><font color="#990000">:</font><font color="#993399">2</font><font color="#990000">]</font>
<font color="#000000">15: </font> users<font color="#990000">.</font><b><font color="#000000">append</font></b><font color="#990000">(</font>name<font color="#990000">)</font>
<font color="#000000">16: </font> table<font color="#990000">[</font>name<font color="#990000">]</font> <font color="#990000">=</font> password
<font color="#000000">17: </font> <b><font color="#0000FF">return</font></b> users<font color="#990000">,</font> table
<font color="#000000">18: </font>
<font color="#000000">19: </font><b><font color="#0000FF">def</font></b> <b><font color="#000000">main</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#990000">:</font>
<font color="#000000">20: </font> <b><font color="#0000FF">for</font></b> filename <b><font color="#0000FF">in</font></b> <font color="#990000">(</font><font color="#FF0000">'/etc/passwd'</font><font color="#990000">,</font> <font color="#FF0000">'etc/passwd.bak'</font><font color="#990000">)</font><font color="#990000">:</font>
<font color="#000000">21: </font> <b><font color="#0000FF">try</font></b><font color="#990000">:</font>
<font color="#000000">22: </font> users<font color="#990000">,</font> table <font color="#990000">=</font> <b><font color="#000000">userinfo</font></b><font color="#990000">(</font>filename<font color="#990000">)</font>
<font color="#000000">23: </font> <b><font color="#0000FF">print</font></b> table<font color="#990000">.</font><b><font color="#000000">keys</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#990000">[</font><font color="#993399">3</font><font color="#990000">:</font><font color="#993399">7</font><font color="#990000">]</font><font color="#990000">,</font> table<font color="#990000">[</font><font color="#FF0000">'postgres'</font><font color="#990000">]</font>
<font color="#000000">24: </font> posix<font color="#990000">.</font><b><font color="#000000">system</font></b><font color="#990000">(</font><font color="#FF0000">'ls -al '</font> <font color="#990000">+</font> filename<font color="#990000">)</font>
<font color="#000000">25: </font> <b><font color="#0000FF">except</font></b><font color="#990000">:</font>
<font color="#000000">26: </font> <b><font color="#0000FF">print</font></b> <font color="#FF0000">'File "'</font> <font color="#990000">+</font> filename <font color="#990000">+</font> <font color="#FF0000">'" not found!'</font>
<font color="#000000">27: </font>
<font color="#000000">28: </font><b><font color="#000000">main</font></b><font color="#990000">(</font><font color="#990000">)</font>
</tt></pre>
|