<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, May 22, 2014 at 12:48 PM, Asif Iqbal <span dir="ltr"><<a href="mailto:vadud3@gmail.com" target="_blank">vadud3@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div class="h5"><br><div class="gmail_extra"><br><br><div class="gmail_quote">

On Thu, May 22, 2014 at 12:27 PM, heasley <span dir="ltr"><<a href="mailto:heas@shrubbery.net" target="_blank">heas@shrubbery.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Thu, May 22, 2014 at 12:26:10PM -0400, Asif Iqbal:<br>
<div>> Any one has tool to manage user accounts on tac_plus.conf?<br>
><br>
> Looking for adding/deleting multiple users.<br>
><br>
> Adding/Modifying/Deleting them manually with an editor is painful.<br>
<br>
</div>why not do it in a database/elsewhere and export it to the config file?<br>
</blockquote></div><br></div></div></div><div class="gmail_extra">I would go with mysql then.<br><br></div><div class="gmail_extra">Most of them are like below. <br>user = vtt2440 {<br>    login = PAM<br>    member = opsdb<br>

}<br><br>
</div><div class="gmail_extra">So creating a schema and inserting these data would be pretty simple<br></div><div class="gmail_extra"><br>CREATE TABLE Users (<br>        user varchar(20) primary key,<br>        login varchar(20),<br>


        member varchar(20)<br>);<br><br>INSERT INTO Users (`user`, `login`,`member`) VALUES ("vtt2440","PAM", "opsdb");<br><br></div><div class="gmail_extra">But I will need some help with parsing this into a txt file and then just LOAD DATA INFILE<br>


would save lot of time with ~2000 users.<br></div><div class="gmail_extra"><br><br></div><div class="gmail_extra">However, how would I manage stanza like this? Should I just move those cmds inside group <br>definition?<br>


<br>user =  ssarepts {<br>        login = file /etc/tacacs-passwd<br>        cmd = terminal {<br>                permit "length"<br>                deny .*<br>        }<br>        cmd = show {<br>                permit "interfaces|policy-map interface"<br>


                deny .*<br>        }<br>    cmd = exit {<br>        permit .*<br>    }<br>}<br><br></div><div class="gmail_extra">So looks like really need help with parsing these and normalize to rows, <br>before I can insert them into database.</div>


<br></div>Thanks for any help with parsing.</div></blockquote><div><br><br></div><div>So, so far I managed to parse most of the users<br><br> import re<br></div><div> f = open ('tac_plus.conf','rb').read()<br>

<br> regex = re.compile('\s?\w*\s*=\s*(\w*)\s{\s+\w*\s*=\s*(\w*)\s+\w*\s*=\s*(\w*)\s+}',re.DOTALL|re.MULTILINE)<br></div><div><br> users = regex.findall(f)<br> <br> for f in users:<br>    print f<br><br></div><div>

So this gets me 1532 users out of 1760 users. I still need to improve the regex and could use some help.<br><br></div><div>Thanks<br><br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<div dir="ltr"><div class=""><div><div class="gmail_extra"><br></div><div class="gmail_extra"><br>-- <br>Asif Iqbal<br>PGP Key: 0xE62693C5 KeyServer: <a href="http://pgp.mit.edu" target="_blank">pgp.mit.edu</a><br>A: Because it messes up the order in which people normally read text.<br>


Q: Why is top-posting such a bad thing?<br><br>
</div></div></div></div>
</blockquote></div><br><br clear="all"><br>-- <br>Asif Iqbal<br>PGP Key: 0xE62693C5 KeyServer: <a href="http://pgp.mit.edu">pgp.mit.edu</a><br>A: Because it messes up the order in which people normally read text.<br>Q: Why is top-posting such a bad thing?<br>

<br>
</div></div>