~zulcss/samba/samab-3.4-test

« back to all changes in this revision

Viewing changes to source4/scripting/bin/mymachinepw

  • Committer: Chuck Short
  • Date: 2010-05-20 18:57:13 UTC
  • Revision ID: zulcss@ubuntu.com-20100520185713-hwqvf9t50z830wck
Initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
 
23
import samba.param as param, ldb, sys, getopt
 
24
 
 
25
optlist, args = getopt.getopt(sys.argv[1:], "s:")
 
26
 
 
27
conf = param.LoadParm()
 
28
loaded = False
 
29
 
 
30
for 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
 
 
37
if not loaded:
 
38
    conf.load_default()
 
39
 
 
40
path=conf.get("private dir") + "/secrets.ldb"
 
41
netbios=conf.get("netbios name")
 
42
 
 
43
secrets = ldb.Ldb(path)
 
44
 
 
45
search = "(&(objectclass=primaryDomain)(samaccountname=" + \
 
46
          netbios + "$))"
 
47
 
 
48
msg = secrets.search(expression=search, attrs=['secret'])
 
49
 
 
50
if 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
 
 
56
password=msg[0]['secret'][0]
 
57
 
 
58
print(password)
 
59
exit(0)