[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freetds
Subject:    [freetds] Hiding password in bsqldb
From:       Modesto Sevilla <mpsevill () uci ! edu>
Date:       2009-08-18 17:39:28
Message-ID: 4A8AE750.7090300 () uci ! edu
[Download RAW message or body]

Hello,
    I had been searching for a solution to pass in the password to 
bsqldb and freebcp from an encrypted file which would not be displayed 
by using ps while the job is running.  I found that someone was looking 
for the same solution but there was no concrete solution.  While 
studying the code in freebcp.c I saw an undocumented feature that 
actually does the trick.  You can use -P- and it will read the password 
from stdin.

  253 		case 'P':
  254 			pdata->Pflag++;
  255 			if ((strcmp(optarg, "-")) == 0) {
  256 				char pwd[255], *nl;
  257 				memset(pwd, 0, 255);
  258 				fgets(pwd, 255, stdin);
  259 				nl = strchr(pwd, '\n');
  260 				if(nl) *nl = '\0';
  261 				pdata->pass = strdup(pwd);
  262 			} else {
  263 				pdata->pass = strdup(optarg);
  264 			}
  265 			break;
 

In my shell script now I am able to do this and the password is not 
displayed in ps.

#!/bin/sh
getencryptedpw PW | freebcp TABLE out DATFILE -f FMTFILE -S SERVER -U 
USERNAME -P-

The password is resolved and piped into freebcp without displaying 
through ps.

I am not a C programmer so I was wondering if someone could make the 
same change to the other apps such as bsqldb.  I was thinking that it 
would look something like this in bsqldb:

  786 		case 'P':
  787 			got_password = 1;
			if ((strcmp(optarg, "-")) == 0) {
				char pwd[255], *nl;
				memset(pwd, 0, 255);
				fgets(pwd, 255, stdin);
				nl = strchr(pwd, '\n');
				if(nl) *nl = '\0';
				DBSETLPWD(login, pwd);
			} else {
				DBSETLPWD(login, optarg);
			}
			break; 

Just wanted to see what people thought and if they find this useful.
Thank you.

*James K. Lowden* jklowden at freetds.org 
<mailto:freetds%40lists.ibiblio.org?Subject=%5Bfreetds%5D%20Hiding%20password%20in%20f \
isql%20and%20bsqldb&In-Reply-To=BB433306F449CD42BB0F5A06B2B49D0D24A4F8%40dc1mailbox03.mpls.digitalriver.com>
 /Mon Dec 22 21:01:59 EST 2008/

    * Previous message: [freetds] Hiding password in fisql and bsqldb
      <http://lists.ibiblio.org/pipermail/freetds/2008q4/024186.html>
    * Next message: [freetds] Hiding password in fisql and bsqldb
      <http://lists.ibiblio.org/pipermail/freetds/2008q4/024190.html>
    * *Messages sorted by:* [ date ]
      <http://lists.ibiblio.org/pipermail/freetds/2008q4/date.html#24188>
      [ thread ]
      <http://lists.ibiblio.org/pipermail/freetds/2008q4/thread.html#24188>
      [ subject ]
      <http://lists.ibiblio.org/pipermail/freetds/2008q4/subject.html#24188>
      [ author ]
      <http://lists.ibiblio.org/pipermail/freetds/2008q4/author.html#24188>

------------------------------------------------------------------------

Peter Chase wrote:
> / I'm trying to use fisql and bsqldb in a bash script and I'm having
/>/ problems finding a way to hide the password from the ps command without
/>/ requiring user input.
/
Yeah, it's a problem.  On my agenda for some time is adding the ability to
use $HOME/.netrc for that purpose, as some ftp clients do.  sqsh uses
.sqshrc to do the same thing (except limited to one
server+username+password tuple).  

It would be a welcome patch.  

--jkl

_______________________________________________
FreeTDS mailing list
FreeTDS@lists.ibiblio.org
http://lists.ibiblio.org/mailman/listinfo/freetds


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic