Impersonate another user temporarily (Unix and Windows)
Tim Golden
mail at timgolden.me.uk
Thu Aug 23 04:38:13 EDT 2007
billiejoex wrote:
> Hi there. I'm writing a modification for a FTP server library I'm
> maintaining.
> Depending on the system I'd want to temporarily impersonate the logged
> user to perform actions on filesystem.
> Something like:
>
> try:
> change_user('user', 'password')
> os.rmdir('dir')
> except:
> print "some error"
> finally:
> change_user('old_user', 'password')
>
> On Unix I took at look at os.seteuid() and os.setegid() functions and
> I noticed they could be useful for my purpose.
> On Windows I have no idea about how could I emulate a similar
> behaviour.
> Could someone please point me in the right direction?
(Warning: not tried, but at least gives you the things to Google for!)
You need the win32security module from the pywin32 extensions. [1]
In particular, you want to look at the LogonUser and
ImpersonateLoggedOnUser functions.
TJG
[1] http://pywin32.sf.net
More information about the Python-list
mailing list