[Samba] How to change Domain password as normal user?

Mark Foley mfoley at ohprs.org
Tue Mar 27 17:38:56 UTC 2018


On Mon, 26 Mar 2018 08:08:53 +0200 Michael Wandel <m.wandel at t-online.de> wrote:
>
> Am 26.03.2018 um 06:31 schrieb Mark Foley via samba:
> > As a normal user, I want to change my Domain Password. I've tried:
> > 
> > $ samba-tool user setpassword myuserId --newpassword='mynewpassword'
> > 
> > but get the error:
> > 
> > ltdb: tdb(/var/lib/samba/private/sam.ldb): tdb_open_ex: could not open file
> > /var/lib/samba/private/sam.ldb: Permission denied
> > 
> > Unable to open tdb '/var/lib/samba/private/sam.ldb': Permission denied
> > Failed to connect to 'tdb:///var/lib/samba/private/sam.ldb' with backend 'tdb': Unable to open
> > tdb '/var/lib/samba/private/sam.ldb': Permission denied
> > ERROR(ldb): uncaught exception - Unable to open tdb '/var/lib/samba/private/sam.ldb':
> > Permission denied
> >   File "/usr/lib64/python2.7/site-packages/samba/netcmd/__init__.py", line 175, in _run
> >     return self.run(*args, **kwargs)
> >   File "/usr/lib64/python2.7/site-packages/samba/netcmd/user.py", line 602, in run
> >     credentials=creds, lp=lp)
> >   File "/usr/lib64/python2.7/site-packages/samba/samdb.py", line 57, in __init__
> >     options=options)
> >   File "/usr/lib64/python2.7/site-packages/samba/__init__.py", line 115, in __init__
> >     self.connect(url, flags, options)
> >   File "/usr/lib64/python2.7/site-packages/samba/samdb.py", line 72, in connect
> >     options=options)
> > 
> > How do I do this?
> > 
>
> I don't think it's a good idea to change your password direct on the DC
> with a normal user login. You don't have rights to the "holy" sam.ldb.
>
> I'll refer the way to change the password from a joined linuxclient, by
> example via pam with the normal passwd program or kpasswd (if you have
> kerberos clients progs installed) or from a joined windows client.
>

I'm trying this from a domain member, and from a yad script that run upon login and checks the
expiration of the password.  It was a script given to me by Roland, but proably he expected the
change to be done from root. 

I can change the pw using the normal 'passwd', and that does change the domain crentials, but
as this is done in a script, I need something that will work with stdin.  I've triled chpasswd,
but that is only permitted by root.  The following did work for me in the yad script:

passwd <<EOF
$oldpw
$newpw
$newpw
EOF


--Mark



More information about the samba mailing list