summaryrefslogtreecommitdiff
path: root/src/shutdown
diff options
context:
space:
mode:
Diffstat (limited to 'src/shutdown')
-rw-r--r--src/shutdown/s6-linux-init-hpr.c12
-rw-r--r--src/shutdown/s6-linux-init-shutdown.c4
2 files changed, 7 insertions, 9 deletions
diff --git a/src/shutdown/s6-linux-init-hpr.c b/src/shutdown/s6-linux-init-hpr.c
index fe8a77d..7f3d457 100644
--- a/src/shutdown/s6-linux-init-hpr.c
+++ b/src/shutdown/s6-linux-init-hpr.c
@@ -71,14 +71,7 @@ int main (int argc, char const *const *argv)
if (!what)
strerr_dief1x(100, "one of the -h, -p or -r options must be given") ;
- if (geteuid())
- {
- errno = EPERM ;
- strerr_dief1sys(100, "nice try, peon") ;
- }
-
if (doconfirm) hpr_confirm_hostname() ;
-
if (force)
{
if (dosync) sync() ;
@@ -87,6 +80,11 @@ int main (int argc, char const *const *argv)
}
if (!tain_now_g()) strerr_warnw1sys("get current time") ;
+ if (!hpr_send("", 0))
+ {
+ errno = EPERM ;
+ strerr_diefu1sys(100, "talk to shutdownd") ;
+ }
if (dowtmp)
{
struct utmpx utx =
diff --git a/src/shutdown/s6-linux-init-shutdown.c b/src/shutdown/s6-linux-init-shutdown.c
index 2e81c3b..011abef 100644
--- a/src/shutdown/s6-linux-init-shutdown.c
+++ b/src/shutdown/s6-linux-init-shutdown.c
@@ -291,10 +291,10 @@ int main (int argc, char const *const *argv)
if (what == 1) what = subwhat ;
else strerr_dieusage(100, USAGE) ;
}
- if (geteuid())
+ if (!hpr_send("", 0))
{
errno = EPERM ;
- strerr_diefu1sys(111, "shutdown") ;
+ strerr_diefu1sys(111, "talk to shutdownd") ;
}
if (doactl) access_control() ;
if (doconfirm) hpr_confirm_hostname() ;