Same code cause the different result.
Jean-Michel Pichavant
jeanmichel at sequans.com
Wed Apr 25 05:22:38 EDT 2012
叶佑群 wrote:
> Hi, all
>
> I have code as:
> / pobj = subprocess.Popen (["smbpasswd", user], stdin
> =subprocess.PIPE)
> password += "\n"
> pobj.stdin.write (password)
> pobj.stdin.write (password)/
>
> the command smbpasswd will change the samba user's password, In
> shell this will run as below:
>
> / [root at localhost ~]# smbpasswd mytest1
> New SMB password:
> Retype new SMB password:
> [root at localhost ~]# /
>
> but in python code, it always prompt to wait input the password,
> it is seems that pobj.stdin.write () doesn't work. It is anything
> wrong with my code? I have another block code that runs as expected:
>
> / pobj = subprocess.Popen (["passwd", user], stdin =
> subprocess.PIPE)
> password = password + "\n"
> pobj.stdin.write (password)
> pobj.stdin.write (password)/
>
> It is so curious and I wonder why.It is the same result when
> substitute smbpasswd with pdbedit.
I'm totally *not* an expert in those kind of things but I remember
someone saying that sometimes, and especialy when asking for password,
unix program do not use stdin.
However, it looks like you can use an command line option to change the
password:
http://lists.samba.org/archive/samba/2004-August/091019.html
Cheers,
JM
More information about the Python-list
mailing list