diff options
author | Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de> | 2009-09-18 20:22:03 +0200 |
---|---|---|
committer | Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de> | 2009-09-18 20:27:30 +0200 |
commit | 1f38aa0995f7ffa82f670fe5d36046dd6b8f44ac (patch) | |
tree | 0aa9f9120bd718a9238a311e43bf7dbeaf3953ce /source4/setup/setexpiry | |
parent | bc2a05f0010f5dece89fda13fd525a1a7ca536a0 (diff) | |
download | samba-1f38aa0995f7ffa82f670fe5d36046dd6b8f44ac.tar.gz samba-1f38aa0995f7ffa82f670fe5d36046dd6b8f44ac.tar.xz samba-1f38aa0995f7ffa82f670fe5d36046dd6b8f44ac.zip |
s4:various scripts under "setup" - Unification
- This unified the shape of those four scripts (comments, command sequence, call
of SamDB)
- To consider the samdb.py changes regarding the filter: there is now always the
possibility either to specify the username or the search filter
Diffstat (limited to 'source4/setup/setexpiry')
-rwxr-xr-x | source4/setup/setexpiry | 50 |
1 files changed, 35 insertions, 15 deletions
diff --git a/source4/setup/setexpiry b/source4/setup/setexpiry index db7cdd412fe..6c6305ceaf6 100755 --- a/source4/setup/setexpiry +++ b/source4/setup/setexpiry @@ -1,9 +1,23 @@ #!/usr/bin/python # -# Sets the password expiry for a user on a Samba4 server -# Copyright Andrew Tridgell 2005 -# Copyright Jelmer Vernooij 2008 -# Released under the GNU GPL version 3 or later +# Sets the user password expiry on a Samba4 server +# Copyright Jelmer Vernooij 2008 +# +# Based on the original in EJS: +# Copyright Andrew Tridgell 2005 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. # import sys @@ -13,32 +27,38 @@ sys.path.insert(0, "bin/python") import samba.getopt as options import optparse -from getpass import getpass + from samba.auth import system_session +from samba.samdb import SamDB -parser = optparse.OptionParser("setexpiry [options] <username>") +parser = optparse.OptionParser("setexpiry [username] [options]") sambaopts = options.SambaOptions(parser) parser.add_option_group(sambaopts) parser.add_option_group(options.VersionOptions(parser)) credopts = options.CredentialsOptions(parser) parser.add_option_group(credopts) +parser.add_option("--filter", help="LDAP Filter to set password on", type=str) parser.add_option("--days", help="Days to expiry", type=int) -parser.add_option("--noexpiry", help="Never expire", action="store_true") +parser.add_option("--noexpiry", help="Password does never expire", action="store_true") opts, args = parser.parse_args() -if len(args) == 0: +if (len(args) == 0) and (filter is None): + print "Either the username or '--filter' must be specified!" parser.print_usage() sys.exit(1) -username = args[0] +days = opts.days +if days is None: + days = 0 + +if filter is None: + username = args[0] + filter = "(&(objectClass=user)(sAMAccountName=%s))" % (username) lp = sambaopts.get_loadparm() creds = credopts.get_credentials(lp) -samdb = sambaopts.get_hostconfig().get_samdb(session_info=system_session(), - credentials=creds) -days = opts.days -if days is None: - days = 0 -samdb.setexpiry(username, days*24*3600, opts.noexpiry) +samdb = SamDB(url=lp.get("sam database"), session_info=system_session(), + credentials=creds, lp=lp) +samdb.setexpiry(filter, days*24*3600, noexpiry=opts.noexpiry) |