• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/samba-3.5.8/source4/scripting/bin/
1#!/usr/bin/env python
2
3# Unix SMB/CIFS implementation.
4# Copyright (C) Volker Lendecke 2008
5# Copyright (C) Stefan Metzmacher 2008
6#
7# Extract our own machine pw from secrets.ldb
8#
9# This program is free software; you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 3 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program.  If not, see <http://www.gnu.org/licenses/>.
21#
22
23import samba.param as param, ldb, sys, getopt
24
25optlist, args = getopt.getopt(sys.argv[1:], "s:")
26
27conf = param.LoadParm()
28loaded = False
29
30for o, v in optlist:
31    if o == "-s":
32        if not conf.load(v):
33            print(v + " not found")
34            exit(1)
35        loaded = True
36
37if not loaded:
38    conf.load_default()
39
40path=conf.get("private dir") + "/secrets.ldb"
41netbios=conf.get("netbios name")
42
43secrets = ldb.Ldb(path)
44
45search = "(&(objectclass=primaryDomain)(samaccountname=" + \
46	  netbios + "$))"
47
48msg = secrets.search(expression=search, attrs=['secret'])
49
50if not msg:
51    print "Error:"
52    print "Password for host[%s] not found in path[%s]." % (netbios, path)
53    print "You may want to pass the smb.conf location via the -s option."
54    exit(1)
55
56password=msg[0]['secret'][0]
57
58print(password)
59exit(0)
60