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
|
<!-- Generator: GNU source-highlight
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<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="#000080">import</font></b> posix
<font color="#000000">04:</font> <b><font color="#000080">from</font></b> string <b><font color="#000080">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="#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="#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="#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="#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="#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="#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="#993399">3</font><font color="#990000">:</font><font color="#993399">7</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="#000000">29:</font>
<font color="#000000">30:</font> q<font color="#990000">.</font><b><font color="#000000">execute</font></b><font color="#990000">(</font><font color="#FF0000">'''</font>
<font color="#000000">31:</font> <font color="#FF0000"> select * from</font>
<font color="#000000">32:</font> <font color="#FF0000"> foo,bar,baz</font>
<font color="#000000">33:</font> <font color="#FF0000"> where</font>
<font color="#000000">34:</font> <font color="#FF0000"> foo.blah=bar.blah</font>
<font color="#000000">35:</font> <font color="#FF0000"> and baz.spam="eggs"</font>
<font color="#000000">36:</font> <font color="#FF0000"> '''</font><font color="#990000">)</font>
<font color="#000000">37:</font> </tt></pre>
|