Skip to content

Commit 32470d4

Browse files
committed
Merge branch 'support-permissionsStartOnly' into feoize
2 parents 9a9a9ef + d12806f commit 32470d4

2 files changed

Lines changed: 36 additions & 36 deletions

File tree

files/docker/systemctl.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3024,9 +3024,9 @@ def do_start_service_from(self, conf):
30243024
exe, newcmd = self.exec_newcmd(cmd, env, conf)
30253025
logg.info(" pre-start %s", shell_cmd(newcmd))
30263026
forkpid = os.fork()
3027-
if not forkpid:
3027+
if not forkpid:
30283028
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3029-
runAsRoot = permissionsStartOnly
3029+
runAsRoot = permissionsStartOnly or exe.nouser
30303030
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
30313031
run = subprocess_waitpid(forkpid)
30323032
logg.debug(" pre-start done (%s) <-%s>",
@@ -3049,7 +3049,7 @@ def do_start_service_from(self, conf):
30493049
forkpid = os.fork()
30503050
if not forkpid: # pragma: no cover
30513051
os.setsid() # detach child process from parent
3052-
self.execve_from(conf, newcmd, env)
3052+
self.execve_from(conf, newcmd, env, exe.nouser)
30533053
run = subprocess_waitpid(forkpid)
30543054
if run.returncode and exe.check:
30553055
returncode = run.returncode
@@ -3083,7 +3083,7 @@ def do_start_service_from(self, conf):
30833083
forkpid = os.fork()
30843084
if not forkpid: # pragma: no cover
30853085
os.setsid() # detach child process from parent
3086-
self.execve_from(conf, newcmd, env)
3086+
self.execve_from(conf, newcmd, env, exe.nouser)
30873087
self.write_status_from(conf, MainPID=forkpid)
30883088
logg.info("%s started PID %s", runs, forkpid)
30893089
env["MAINPID"] = strE(forkpid)
@@ -3126,7 +3126,7 @@ def do_start_service_from(self, conf):
31263126
forkpid = os.fork()
31273127
if not forkpid: # pragma: no cover
31283128
os.setsid() # detach child process from parent
3129-
self.execve_from(conf, newcmd, env)
3129+
self.execve_from(conf, newcmd, env, exe.nouser)
31303130
# via NOTIFY # self.write_status_from(conf, MainPID=forkpid)
31313131
logg.info("%s started PID %s", runs, forkpid)
31323132
mainpid = forkpid
@@ -3168,7 +3168,7 @@ def do_start_service_from(self, conf):
31683168
forkpid = os.fork()
31693169
if not forkpid: # pragma: no cover
31703170
os.setsid() # detach child process from parent
3171-
self.execve_from(conf, newcmd, env)
3171+
self.execve_from(conf, newcmd, env, exe.nouser)
31723172
logg.info("%s started PID %s", runs, forkpid)
31733173
run = subprocess_waitpid(forkpid)
31743174
if run.returncode and exe.check:
@@ -3203,7 +3203,7 @@ def do_start_service_from(self, conf):
32033203
forkpid = os.fork()
32043204
if not forkpid:
32053205
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3206-
runAsRoot = permissionsStartOnly
3206+
runAsRoot = permissionsStartOnly or exe.nouser
32073207
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
32083208
run = subprocess_waitpid(forkpid)
32093209
logg.debug("post-fail done (%s) <-%s>",
@@ -3218,7 +3218,7 @@ def do_start_service_from(self, conf):
32183218
forkpid = os.fork()
32193219
if not forkpid:
32203220
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3221-
runAsRoot = permissionsStartOnly
3221+
runAsRoot = permissionsStartOnly or exe.nouser
32223222
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
32233223
run = subprocess_waitpid(forkpid)
32243224
logg.debug("post-start done (%s) <-%s>",
@@ -3327,9 +3327,9 @@ def do_start_socket_from(self, conf):
33273327
exe, newcmd = self.exec_newcmd(cmd, env, conf)
33283328
logg.info(" pre-start %s", shell_cmd(newcmd))
33293329
forkpid = os.fork()
3330-
if not forkpid:
3330+
if not forkpid:
33313331
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3332-
runAsRoot = permissionsStartOnly
3332+
runAsRoot = permissionsStartOnly or exe.nouser
33333333
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
33343334
run = subprocess_waitpid(forkpid)
33353335
logg.debug(" pre-start done (%s) <-%s>",
@@ -3371,7 +3371,7 @@ def do_start_socket_from(self, conf):
33713371
forkpid = os.fork()
33723372
if not forkpid:
33733373
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3374-
runAsRoot = permissionsStartOnly
3374+
runAsRoot = permissionsStartOnly or exe.nouser
33753375
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
33763376
run = subprocess_waitpid(forkpid)
33773377
logg.debug("post-fail done (%s) <-%s>",
@@ -3384,7 +3384,7 @@ def do_start_socket_from(self, conf):
33843384
forkpid = os.fork()
33853385
if not forkpid:
33863386
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3387-
runAsRoot = permissionsStartOnly
3387+
runAsRoot = permissionsStartOnly or exe.nouser
33883388
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
33893389
run = subprocess_waitpid(forkpid)
33903390
logg.debug("post-start done (%s) <-%s>",
@@ -3729,7 +3729,7 @@ def do_stop_service_from(self, conf):
37293729
logg.info("%s stop %s", runs, shell_cmd(newcmd))
37303730
forkpid = os.fork()
37313731
if not forkpid:
3732-
self.execve_from(conf, newcmd, env) # pragma: no cover
3732+
self.execve_from(conf, newcmd, env, exe.nouser) # pragma: no cover
37333733
run = subprocess_waitpid(forkpid)
37343734
if run.returncode and exe.check:
37353735
returncode = run.returncode
@@ -3759,7 +3759,7 @@ def do_stop_service_from(self, conf):
37593759
logg.info("%s stop %s", runs, shell_cmd(newcmd))
37603760
forkpid = os.fork()
37613761
if not forkpid:
3762-
self.execve_from(conf, newcmd, env) # pragma: no cover
3762+
self.execve_from(conf, newcmd, env, exe.nouser) # pragma: no cover
37633763
run = subprocess_waitpid(forkpid)
37643764
run = must_have_failed(run, newcmd) # TODO: a workaround
37653765
# self.write_status_from(conf, MainPID=run.pid) # no ExecStop
@@ -3792,7 +3792,7 @@ def do_stop_service_from(self, conf):
37923792
logg.info("fork stop %s", shell_cmd(newcmd))
37933793
forkpid = os.fork()
37943794
if not forkpid:
3795-
self.execve_from(conf, newcmd, env) # pragma: no cover
3795+
self.execve_from(conf, newcmd, env, exe.nouser) # pragma: no cover
37963796
run = subprocess_waitpid(forkpid)
37973797
if run.returncode and exe.check:
37983798
returncode = run.returncode
@@ -3826,7 +3826,7 @@ def do_stop_service_from(self, conf):
38263826
forkpid = os.fork()
38273827
if not forkpid:
38283828
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3829-
runAsRoot = permissionsStartOnly
3829+
runAsRoot = permissionsStartOnly or exe.nouser
38303830
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
38313831
run = subprocess_waitpid(forkpid)
38323832
logg.debug("post-stop done (%s) <-%s>",
@@ -3866,7 +3866,7 @@ def do_stop_socket_from(self, conf):
38663866
forkpid = os.fork()
38673867
if not forkpid:
38683868
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3869-
runAsRoot = permissionsStartOnly
3869+
runAsRoot = permissionsStartOnly or exe.nouser
38703870
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
38713871
run = subprocess_waitpid(forkpid)
38723872
logg.debug("post-stop done (%s) <-%s>",
@@ -3976,7 +3976,7 @@ def do_reload_service_from(self, conf):
39763976
logg.info("%s reload %s", runs, shell_cmd(newcmd))
39773977
forkpid = os.fork()
39783978
if not forkpid:
3979-
self.execve_from(conf, newcmd, env) # pragma: no cover
3979+
self.execve_from(conf, newcmd, env, exe.nouser) # pragma: no cover
39803980
run = subprocess_waitpid(forkpid)
39813981
if run.returncode and exe.check:
39823982
logg.error("Job for %s failed because the control process exited with error code. (%s)",

files/docker/systemctl3.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3024,9 +3024,9 @@ def do_start_service_from(self, conf):
30243024
exe, newcmd = self.exec_newcmd(cmd, env, conf)
30253025
logg.info(" pre-start %s", shell_cmd(newcmd))
30263026
forkpid = os.fork()
3027-
if not forkpid:
3027+
if not forkpid:
30283028
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3029-
runAsRoot = permissionsStartOnly
3029+
runAsRoot = permissionsStartOnly or exe.nouser
30303030
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
30313031
run = subprocess_waitpid(forkpid)
30323032
logg.debug(" pre-start done (%s) <-%s>",
@@ -3049,7 +3049,7 @@ def do_start_service_from(self, conf):
30493049
forkpid = os.fork()
30503050
if not forkpid: # pragma: no cover
30513051
os.setsid() # detach child process from parent
3052-
self.execve_from(conf, newcmd, env)
3052+
self.execve_from(conf, newcmd, env, exe.nouser)
30533053
run = subprocess_waitpid(forkpid)
30543054
if run.returncode and exe.check:
30553055
returncode = run.returncode
@@ -3083,7 +3083,7 @@ def do_start_service_from(self, conf):
30833083
forkpid = os.fork()
30843084
if not forkpid: # pragma: no cover
30853085
os.setsid() # detach child process from parent
3086-
self.execve_from(conf, newcmd, env)
3086+
self.execve_from(conf, newcmd, env, exe.nouser)
30873087
self.write_status_from(conf, MainPID=forkpid)
30883088
logg.info("%s started PID %s", runs, forkpid)
30893089
env["MAINPID"] = strE(forkpid)
@@ -3126,7 +3126,7 @@ def do_start_service_from(self, conf):
31263126
forkpid = os.fork()
31273127
if not forkpid: # pragma: no cover
31283128
os.setsid() # detach child process from parent
3129-
self.execve_from(conf, newcmd, env)
3129+
self.execve_from(conf, newcmd, env, exe.nouser)
31303130
# via NOTIFY # self.write_status_from(conf, MainPID=forkpid)
31313131
logg.info("%s started PID %s", runs, forkpid)
31323132
mainpid = forkpid
@@ -3168,7 +3168,7 @@ def do_start_service_from(self, conf):
31683168
forkpid = os.fork()
31693169
if not forkpid: # pragma: no cover
31703170
os.setsid() # detach child process from parent
3171-
self.execve_from(conf, newcmd, env)
3171+
self.execve_from(conf, newcmd, env, exe.nouser)
31723172
logg.info("%s started PID %s", runs, forkpid)
31733173
run = subprocess_waitpid(forkpid)
31743174
if run.returncode and exe.check:
@@ -3203,7 +3203,7 @@ def do_start_service_from(self, conf):
32033203
forkpid = os.fork()
32043204
if not forkpid:
32053205
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3206-
runAsRoot = permissionsStartOnly
3206+
runAsRoot = permissionsStartOnly or exe.nouser
32073207
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
32083208
run = subprocess_waitpid(forkpid)
32093209
logg.debug("post-fail done (%s) <-%s>",
@@ -3218,7 +3218,7 @@ def do_start_service_from(self, conf):
32183218
forkpid = os.fork()
32193219
if not forkpid:
32203220
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3221-
runAsRoot = permissionsStartOnly
3221+
runAsRoot = permissionsStartOnly or exe.nouser
32223222
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
32233223
run = subprocess_waitpid(forkpid)
32243224
logg.debug("post-start done (%s) <-%s>",
@@ -3327,9 +3327,9 @@ def do_start_socket_from(self, conf):
33273327
exe, newcmd = self.exec_newcmd(cmd, env, conf)
33283328
logg.info(" pre-start %s", shell_cmd(newcmd))
33293329
forkpid = os.fork()
3330-
if not forkpid:
3330+
if not forkpid:
33313331
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3332-
runAsRoot = permissionsStartOnly
3332+
runAsRoot = permissionsStartOnly or exe.nouser
33333333
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
33343334
run = subprocess_waitpid(forkpid)
33353335
logg.debug(" pre-start done (%s) <-%s>",
@@ -3371,7 +3371,7 @@ def do_start_socket_from(self, conf):
33713371
forkpid = os.fork()
33723372
if not forkpid:
33733373
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3374-
runAsRoot = permissionsStartOnly
3374+
runAsRoot = permissionsStartOnly or exe.nouser
33753375
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
33763376
run = subprocess_waitpid(forkpid)
33773377
logg.debug("post-fail done (%s) <-%s>",
@@ -3384,7 +3384,7 @@ def do_start_socket_from(self, conf):
33843384
forkpid = os.fork()
33853385
if not forkpid:
33863386
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3387-
runAsRoot = permissionsStartOnly
3387+
runAsRoot = permissionsStartOnly or exe.nouser
33883388
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
33893389
run = subprocess_waitpid(forkpid)
33903390
logg.debug("post-start done (%s) <-%s>",
@@ -3729,7 +3729,7 @@ def do_stop_service_from(self, conf):
37293729
logg.info("%s stop %s", runs, shell_cmd(newcmd))
37303730
forkpid = os.fork()
37313731
if not forkpid:
3732-
self.execve_from(conf, newcmd, env) # pragma: no cover
3732+
self.execve_from(conf, newcmd, env, exe.nouser) # pragma: no cover
37333733
run = subprocess_waitpid(forkpid)
37343734
if run.returncode and exe.check:
37353735
returncode = run.returncode
@@ -3759,7 +3759,7 @@ def do_stop_service_from(self, conf):
37593759
logg.info("%s stop %s", runs, shell_cmd(newcmd))
37603760
forkpid = os.fork()
37613761
if not forkpid:
3762-
self.execve_from(conf, newcmd, env) # pragma: no cover
3762+
self.execve_from(conf, newcmd, env, exe.nouser) # pragma: no cover
37633763
run = subprocess_waitpid(forkpid)
37643764
run = must_have_failed(run, newcmd) # TODO: a workaround
37653765
# self.write_status_from(conf, MainPID=run.pid) # no ExecStop
@@ -3792,7 +3792,7 @@ def do_stop_service_from(self, conf):
37923792
logg.info("fork stop %s", shell_cmd(newcmd))
37933793
forkpid = os.fork()
37943794
if not forkpid:
3795-
self.execve_from(conf, newcmd, env) # pragma: no cover
3795+
self.execve_from(conf, newcmd, env, exe.nouser) # pragma: no cover
37963796
run = subprocess_waitpid(forkpid)
37973797
if run.returncode and exe.check:
37983798
returncode = run.returncode
@@ -3826,7 +3826,7 @@ def do_stop_service_from(self, conf):
38263826
forkpid = os.fork()
38273827
if not forkpid:
38283828
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3829-
runAsRoot = permissionsStartOnly
3829+
runAsRoot = permissionsStartOnly or exe.nouser
38303830
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
38313831
run = subprocess_waitpid(forkpid)
38323832
logg.debug("post-stop done (%s) <-%s>",
@@ -3866,7 +3866,7 @@ def do_stop_socket_from(self, conf):
38663866
forkpid = os.fork()
38673867
if not forkpid:
38683868
permissionsStartOnly = self.get_PermissionsStartOnly(conf)
3869-
runAsRoot = permissionsStartOnly
3869+
runAsRoot = permissionsStartOnly or exe.nouser
38703870
self.execve_from(conf, newcmd, env, runAsRoot) # pragma: no cover
38713871
run = subprocess_waitpid(forkpid)
38723872
logg.debug("post-stop done (%s) <-%s>",
@@ -3976,7 +3976,7 @@ def do_reload_service_from(self, conf):
39763976
logg.info("%s reload %s", runs, shell_cmd(newcmd))
39773977
forkpid = os.fork()
39783978
if not forkpid:
3979-
self.execve_from(conf, newcmd, env) # pragma: no cover
3979+
self.execve_from(conf, newcmd, env, exe.nouser) # pragma: no cover
39803980
run = subprocess_waitpid(forkpid)
39813981
if run.returncode and exe.check:
39823982
logg.error("Job for %s failed because the control process exited with error code. (%s)",

0 commit comments

Comments
 (0)