systemd: Use PermissionsStartOnly instead of running sudo

Use the PermissionsStartOnly systemd option to apply the permission
related configurations only to the start command. This allows us to stop
using "sudo" for ExecStartPre and ExecStopPost hooks and drop the
"requiretty" /etc/sudoers hack from Scylla's RPM.

Tested-by: Takuya ASADA <syuu@scylladb.com>
Message-Id: <1466407587-31734-1-git-send-email-penberg@scylladb.com>
This commit is contained in:
Pekka Enberg
2016-06-20 10:26:27 +03:00
parent baf3614e8f
commit 1d5f7be447
2 changed files with 3 additions and 7 deletions

View File

@@ -2,6 +2,7 @@
Description=Scylla Server
[Service]
PermissionsStartOnly=true
Type=notify
LimitMEMLOCK=infinity
LimitNOFILE=200000
@@ -10,9 +11,9 @@ LimitNPROC=8096
EnvironmentFile=@@SYSCONFDIR@@/scylla-server
EnvironmentFile=/etc/scylla.d/*.conf
WorkingDirectory=$SCYLLA_HOME
ExecStartPre=/usr/bin/sudo /usr/lib/scylla/scylla_prepare
ExecStartPre=/usr/lib/scylla/scylla_prepare
ExecStart=/usr/bin/scylla $SCYLLA_ARGS $SEASTAR_IO $DEV_MODE $CPUSET
ExecStopPost=/usr/bin/sudo /usr/lib/scylla/scylla_stop
ExecStopPost=/usr/lib/scylla/scylla_stop
TimeoutStartSec=900
KillMode=process
Restart=on-abnormal

View File

@@ -104,11 +104,6 @@ cp -P dist/common/sbin/* $RPM_BUILD_ROOT%{_sbindir}/
%pre server
/usr/sbin/groupadd scylla 2> /dev/null || :
/usr/sbin/useradd -g scylla -s /sbin/nologin -r -d %{_sharedstatedir}/scylla scylla 2> /dev/null || :
%if 0%{?rhel}
sed -e "s/Defaults requiretty/#Defaults requiretty/" /etc/sudoers > /tmp/sudoers
cp /tmp/sudoers /etc/sudoers
rm /tmp/sudoers
%endif
%post server
# Upgrade coredump settings