Fixed pkexec
Resolves: rhbz#1377896
This commit is contained in:
parent
0725332c68
commit
fcfdad54f5
73
tuned-2.7.1-pkexec-fix.patch
Normal file
73
tuned-2.7.1-pkexec-fix.patch
Normal file
@ -0,0 +1,73 @@
|
||||
From 325dd17ee5f19a84fe97987404edc78d9904fa27 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
|
||||
Date: Wed, 21 Sep 2016 16:43:39 +0200
|
||||
Subject: [PATCH] tuned-gui: fixed pkexec to work from GNOME Shell
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
GNOME Shell doesn't seem to run applications through the shell or with some
|
||||
persistent parent, thus pkexec cannot be execed over the original tuned-gui
|
||||
process, because it wouldn't pass the pkexec getppid check. The check is
|
||||
there to ensure that the pkexec will not be owned by the init process.
|
||||
|
||||
This fix runs the pkexec as a child process. The minor drawback is that
|
||||
there will be two tuned-gui processes - the original process running under
|
||||
the user and the pkexeced process running under the root. The original
|
||||
process will effectively do nothing, it will just wait for the pkexeced
|
||||
process to exit.
|
||||
|
||||
Resolves: rhbz#1377896
|
||||
|
||||
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
|
||||
---
|
||||
tuned-gui.desktop | 2 +-
|
||||
tuned-gui.py | 12 +++++++++---
|
||||
2 files changed, 10 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/tuned-gui.desktop b/tuned-gui.desktop
|
||||
index f64869d..460e052 100644
|
||||
--- a/tuned-gui.desktop
|
||||
+++ b/tuned-gui.desktop
|
||||
@@ -3,7 +3,7 @@ Encoding=UTF-8
|
||||
Name=tuned-gui
|
||||
GenericName=tuned-gui
|
||||
Comment=GTK GUI that can control Tuned daemon and provides simple profile editor
|
||||
-Exec=pkexec /usr/sbin/tuned-gui
|
||||
+Exec=tuned-gui
|
||||
Icon=tuned
|
||||
Terminal=false
|
||||
Type=Application
|
||||
diff --git a/tuned-gui.py b/tuned-gui.py
|
||||
index 6cabfb5..3731b34 100755
|
||||
--- a/tuned-gui.py
|
||||
+++ b/tuned-gui.py
|
||||
@@ -49,6 +49,7 @@ import os
|
||||
import time
|
||||
import configobj
|
||||
|
||||
+import subprocess
|
||||
import tuned.logs
|
||||
import tuned.consts as consts
|
||||
import tuned.version as version
|
||||
@@ -1017,9 +1018,14 @@ if __name__ == '__main__':
|
||||
|
||||
if os.geteuid() != 0:
|
||||
try:
|
||||
- os.execvp('pkexec', ['pkexec ' + EXECNAME, EXECNAME] + sys.argv[1:])
|
||||
- except (IOError, OSError) as e:
|
||||
- pass
|
||||
+ # Explicitly disabling shell to be safe
|
||||
+ ec = subprocess.call(['pkexec', EXECNAME] + sys.argv[1:], shell = False)
|
||||
+ except (subprocess.CalledProcessError) as e:
|
||||
+ print >> sys.stderr, 'Error elevating privileges: %s' % e
|
||||
+ else:
|
||||
+ # If not pkexec error
|
||||
+ if ec not in [126, 127]:
|
||||
+ sys.exit(0)
|
||||
# In case of error elevating privileges
|
||||
print >> sys.stderr, 'Superuser permissions are required to run the daemon.'
|
||||
sys.exit(1)
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,7 +1,7 @@
|
||||
Summary: A dynamic adaptive system tuning daemon
|
||||
Name: tuned
|
||||
Version: 2.7.1
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
License: GPLv2+
|
||||
Source: https://fedorahosted.org/releases/t/u/tuned/tuned-%{version}.tar.bz2
|
||||
URL: https://fedorahosted.org/tuned/
|
||||
@ -13,6 +13,7 @@ Requires(postun): systemd
|
||||
Requires: python-decorator, dbus-python, pygobject3-base, python-pyudev
|
||||
Requires: virt-what, python-configobj, ethtool, gawk, kernel-tools, hdparm
|
||||
Requires: util-linux, python-perf, dbus, polkit
|
||||
Patch0: tuned-2.7.1-pkexec-fix.patch
|
||||
|
||||
%description
|
||||
The tuned package contains a daemon that tunes system settings dynamically.
|
||||
@ -113,6 +114,7 @@ It can be also used to fine tune your system for specific scenarios.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
|
||||
%build
|
||||
|
||||
@ -321,6 +323,10 @@ fi
|
||||
%{_mandir}/man7/tuned-profiles-compat.7*
|
||||
|
||||
%changelog
|
||||
* Wed Sep 21 2016 Jaroslav Škarvada <jskarvad@redhat.com> - 2.7.1-2
|
||||
- Fixed pkexec
|
||||
Resolves: rhbz#1377896
|
||||
|
||||
* Tue Aug 2 2016 Jaroslav Škarvada <jskarvad@redhat.com> - 2.7.1-1
|
||||
- New release
|
||||
Resolves: rhbz#1362481
|
||||
|
Loading…
Reference in New Issue
Block a user