qrexec: update qrexec-policy to python3
This commit is contained in:
parent
b370eea13c
commit
b253fdba33
@ -1,4 +1,5 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python3
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
@ -75,7 +76,7 @@ def line_to_dict(line):
|
|||||||
# Warn if we're ignoring extra data after a space, such as:
|
# Warn if we're ignoring extra data after a space, such as:
|
||||||
# vm1 vm2 allow, user=foo
|
# vm1 vm2 allow, user=foo
|
||||||
if len(tokens) > 3:
|
if len(tokens) > 3:
|
||||||
print >> sys.stderr, "Trailing data ignored in %s" % line
|
print("Trailing data ignored in %s" % line, file=sys.stderr)
|
||||||
|
|
||||||
return policy_dict
|
return policy_dict
|
||||||
|
|
||||||
@ -89,9 +90,10 @@ def read_policy_file(service_name):
|
|||||||
policy_file = os.path.join(DEPRECATED_POLICY_FILE_DIR, service_name)
|
policy_file = os.path.join(DEPRECATED_POLICY_FILE_DIR, service_name)
|
||||||
if not os.path.isfile(policy_file):
|
if not os.path.isfile(policy_file):
|
||||||
return None
|
return None
|
||||||
print >> sys.stderr, \
|
print(sys.stderr,
|
||||||
"RPC service '%s' uses deprecated policy location, " \
|
"RPC service '%s' uses deprecated policy location, "
|
||||||
"please move to %s" % (service_name, POLICY_FILE_DIR)
|
"please move to %s" % (service_name, POLICY_FILE_DIR),
|
||||||
|
file=sys.stderr)
|
||||||
policy_list = list()
|
policy_list = list()
|
||||||
f = open(policy_file)
|
f = open(policy_file)
|
||||||
fcntl.flock(f, fcntl.LOCK_SH)
|
fcntl.flock(f, fcntl.LOCK_SH)
|
||||||
@ -152,7 +154,7 @@ def do_execute(domain, target, user, service_name, process_ident, vm=None):
|
|||||||
dispvm = False
|
dispvm = False
|
||||||
if target == "$dispvm":
|
if target == "$dispvm":
|
||||||
if domain.default_dispvm is None:
|
if domain.default_dispvm is None:
|
||||||
print >>sys.stderr, "No default DispVM set, aborting!"
|
print("No default DispVM set, aborting!", file=sys.stderr)
|
||||||
exit(1)
|
exit(1)
|
||||||
target = "$dispvm:" + domain.default_dispvm.name
|
target = "$dispvm:" + domain.default_dispvm.name
|
||||||
if target.startswith("$dispvm:"):
|
if target.startswith("$dispvm:"):
|
||||||
@ -255,8 +257,8 @@ def main():
|
|||||||
try:
|
try:
|
||||||
source_vm = app.domains[args.domain]
|
source_vm = app.domains[args.domain]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
print >> sys.stderr, "Rpc failed (unknown source domain): ", \
|
print("Rpc failed (unknown source domain): ",
|
||||||
args.domain, args.target, args.service_name
|
args.domain, args.target, args.service_name, file=sys.stderr)
|
||||||
text = "Domain '%s' doesn't exist (service %s called to domain %s)." % (
|
text = "Domain '%s' doesn't exist (service %s called to domain %s)." % (
|
||||||
args.domain, args.service_name, args.target)
|
args.domain, args.service_name, args.target)
|
||||||
info_dialog("error", text)
|
info_dialog("error", text)
|
||||||
@ -265,8 +267,8 @@ def main():
|
|||||||
try:
|
try:
|
||||||
target_vm = validate_target(app, args.target)
|
target_vm = validate_target(app, args.target)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
print >> sys.stderr, "Rpc failed (unknown domain):", \
|
print("Rpc failed (unknown domain):",
|
||||||
args.domain, args.target, args.service_name
|
args.domain, args.target, args.service_name, file=sys.stderr)
|
||||||
text = "Domain '%s' doesn't exist (service %s called by domain %s)." % (
|
text = "Domain '%s' doesn't exist (service %s called by domain %s)." % (
|
||||||
args.target, args.service_name, args.domain)
|
args.target, args.service_name, args.domain)
|
||||||
info_dialog("error", text)
|
info_dialog("error", text)
|
||||||
@ -308,11 +310,13 @@ def main():
|
|||||||
user = policy_dict["action.user"]
|
user = policy_dict["action.user"]
|
||||||
else:
|
else:
|
||||||
user = "DEFAULT"
|
user = "DEFAULT"
|
||||||
print >> sys.stderr, "Rpc allowed:", args.domain, args.target, args.service_name
|
print("Rpc allowed:", args.domain, args.target,
|
||||||
|
args.service_name, file=sys.stderr)
|
||||||
do_execute(source_vm, args.target, user, args.service_name, process_ident,
|
do_execute(source_vm, args.target, user, args.service_name, process_ident,
|
||||||
vm=target_vm)
|
vm=target_vm)
|
||||||
return 0
|
return 0
|
||||||
print >> sys.stderr, "Rpc denied:", args.domain, args.target, args.service_name
|
print("Rpc denied:", args.domain, args.target, args.service_name,
|
||||||
|
file=sys.stderr)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
@ -47,6 +47,7 @@ BuildRequires: qubes-utils-devel >= 3.1.3
|
|||||||
BuildRequires: qubes-libvchan-devel
|
BuildRequires: qubes-libvchan-devel
|
||||||
Requires: qubes-core-dom0
|
Requires: qubes-core-dom0
|
||||||
Requires: qubes-utils >= 3.1.3
|
Requires: qubes-utils >= 3.1.3
|
||||||
|
Requires: python3-PyQt4
|
||||||
Requires: %{name}-kernel-install
|
Requires: %{name}-kernel-install
|
||||||
|
|
||||||
%define _builddir %(pwd)
|
%define _builddir %(pwd)
|
||||||
|
Loading…
Reference in New Issue
Block a user