install printer based on GPO
This commit is contained in:
parent
cc4010b1bb
commit
2fe52816e4
31 changed files with 3284 additions and 0 deletions
50
roles/lmn_printer/files/scripts/sudoTools
Executable file
50
roles/lmn_printer/files/scripts/sudoTools
Executable file
|
@ -0,0 +1,50 @@
|
|||
#!/usr/bin/python3
|
||||
#
|
||||
# Script to do some things that require root permissions as a normal user
|
||||
# Currently used for:
|
||||
# - mounting shares
|
||||
# - installing printers
|
||||
#
|
||||
|
||||
import os, sys, argparse
|
||||
from linuxmusterLinuxclient7 import shares, printers, constants
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser(description="Script to do some things that require root permissions as a normal user")
|
||||
|
||||
subparsers = parser.add_subparsers(title='Tasks', metavar="<task>", help="The task to execute", dest="task", required=True)
|
||||
|
||||
subparserCache = subparsers.add_parser('install-printer', help='install a printer')
|
||||
requiredGroupCache = subparserCache.add_argument_group('required arguments')
|
||||
requiredGroupCache.add_argument("--path", help="The network path of the printer", required=True)
|
||||
requiredGroupCache.add_argument("--name", help="The name of the printer", required=True)
|
||||
|
||||
subparserCache = subparsers.add_parser('mount-share', help='mount a network share')
|
||||
subparserCache.add_argument("--hidden", help="Hide this share", action='store_true')
|
||||
requiredGroupCache = subparserCache.add_argument_group('required arguments')
|
||||
requiredGroupCache.add_argument("--path", help="The network path of the share", required=True)
|
||||
requiredGroupCache.add_argument("--name", help="The name of the share", required=True)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
task = args.task
|
||||
|
||||
if not os.geteuid() == 0:
|
||||
print("This script has to be run using sudo!")
|
||||
exit(1)
|
||||
|
||||
username = os.getenv("SUDO_USER")
|
||||
|
||||
if task == "install-printer":
|
||||
if printers.installPrinter(args.path, name=args.name, username=username):
|
||||
sys.exit(0)
|
||||
else:
|
||||
sys.exit(1)
|
||||
pass
|
||||
elif task == "mount-share":
|
||||
if shares._mountShare(username, args.path, args.name, args.hidden, False):
|
||||
sys.exit(0)
|
||||
else:
|
||||
sys.exit(1)
|
||||
|
||||
exit(0)
|
Loading…
Add table
Add a link
Reference in a new issue