1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-02-04 17:47:03 +03:00

run/mount/systemctl: don't fork off PolicyKit/ask-pw agent when in --user mode

When we are in --user mode there's no point in doing PolicyKit/ask-pw
because both of these systems are only used by system-level services.
Let's disable the two agents for that automaticlly hence.

Prompted by: #20576
This commit is contained in:
Lennart Poettering 2021-08-30 13:21:55 +02:00
parent 93d2e0b6b0
commit 966f3a246c
3 changed files with 12 additions and 0 deletions

View File

@ -332,6 +332,9 @@ static int parse_argv(int argc, char *argv[]) {
assert_not_reached();
}
if (arg_user)
arg_ask_password = false;
if (arg_user && arg_transport != BUS_TRANSPORT_LOCAL)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Execution in user context is not supported on non-local systems.");

View File

@ -507,6 +507,10 @@ static int parse_argv(int argc, char *argv[]) {
assert_not_reached();
}
/* If we are talking to the per-user instance PolicyKit isn't going to help */
if (arg_user)
arg_ask_password = false;
with_trigger = !!arg_path_property || !!arg_socket_property || arg_with_timer;
/* currently, only single trigger (path, socket, timer) unit can be created simultaneously */

View File

@ -925,6 +925,11 @@ static int systemctl_parse_argv(int argc, char *argv[]) {
assert_not_reached();
}
/* If we are in --user mode, there's no point in talking to PolicyKit or the infra to query system
* passwords */
if (arg_scope != UNIT_FILE_SYSTEM)
arg_ask_password = false;
if (arg_transport == BUS_TRANSPORT_REMOTE && arg_scope != UNIT_FILE_SYSTEM)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Cannot access user instance remotely.");