From: David Howells Date: Sun, 13 Apr 2014 11:46:16 +0000 (+0100) Subject: Implement "bos {adduser,removeuser}" X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=e8a0aeaf494423d996d2b407d3d832c7f06327aa;p=users%2Fdhowells%2Fkafs-utils.git Implement "bos {adduser,removeuser}" Signed-off-by: David Howells --- diff --git a/suite/commands/bos/adduser.py b/suite/commands/bos/adduser.py new file mode 100644 index 0000000..907db17 --- /dev/null +++ b/suite/commands/bos/adduser.py @@ -0,0 +1,63 @@ +# +# AFS Server management toolkit: Add a super user +# -*- coding: utf-8 -*- +# + +__copyright__ = """ +Copyright (C) 2014 Red Hat, Inc. All Rights Reserved. +Written by David Howells (dhowells@redhat.com) + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public Licence version 2 as +published by the Free Software Foundation. + +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 Licence for more details. + +You should have received a copy of the GNU General Public Licence +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +""" + +from afs.argparse import * +import kafs +import sys + +help = "Add a privileged user to the UserList file" + +command_arguments = [ + [ "server", get_bosserver, "rs", "" ], + [ "user", get_strings, "rm", "+" ], + [ "cell", get_cell, "os", "" ], + [ "noauth", get_auth, "fn" ], + [ "localauth", get_auth, "fn" ], + [ "verbose", get_dummy, "fn" ], + [ "encrypt", get_dummy, "fn" ], +] + +cant_combine_arguments = [ + ( "cell", "localauth" ), + ( "noauth", "localauth" ), +] + +description = r""" +Add a privileged user to the UserList file +""" + +def main(params): + exitcode = 0 + cell = params["cell"] + bos_conn = cell.open_bos_server(params["server"], params) + + for i in params["user"]: + try: + ret = kafs.BOZO_AddSUser(bos_conn, i) + except kafs.RemoteAbort as e: + if str(e) == "Aborted 17": + print("bos: failed to add user", i, "(File exists)", file=sys.stderr) + exitcode = 1 + else: + raise + return exitcode diff --git a/suite/commands/bos/removeuser.py b/suite/commands/bos/removeuser.py new file mode 100644 index 0000000..1b2612d --- /dev/null +++ b/suite/commands/bos/removeuser.py @@ -0,0 +1,63 @@ +# +# AFS Server management toolkit: Remove a super user +# -*- coding: utf-8 -*- +# + +__copyright__ = """ +Copyright (C) 2014 Red Hat, Inc. All Rights Reserved. +Written by David Howells (dhowells@redhat.com) + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public Licence version 2 as +published by the Free Software Foundation. + +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 Licence for more details. + +You should have received a copy of the GNU General Public Licence +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +""" + +from afs.argparse import * +import kafs +import sys + +help = "Remove a privileged user from the UserList file" + +command_arguments = [ + [ "server", get_bosserver, "rs", "" ], + [ "user", get_strings, "rm", "+" ], + [ "cell", get_cell, "os", "" ], + [ "noauth", get_auth, "fn" ], + [ "localauth", get_auth, "fn" ], + [ "verbose", get_dummy, "fn" ], + [ "encrypt", get_dummy, "fn" ], +] + +cant_combine_arguments = [ + ( "cell", "localauth" ), + ( "noauth", "localauth" ), +] + +description = r""" +Remove a privileged user from the UserList file +""" + +def main(params): + exitcode = 0 + cell = params["cell"] + bos_conn = cell.open_bos_server(params["server"], params) + + for i in params["user"]: + try: + ret = kafs.BOZO_DeleteSUser(bos_conn, i) + except kafs.RemoteAbort as e: + if str(e) == "Aborted 2": + print("bos: failed to delete user", i, "(no such user)", file=sys.stderr) + exitcode = 1 + else: + raise + return exitcode