diff options
author | Christian Breunig <christian@breunig.cc> | 2023-04-04 19:22:15 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-04 19:22:15 +0200 |
commit | e520e08410131a1a65723fd32aeb1d278efa42c4 (patch) | |
tree | 45b36bc836b14eef4b365700fc494d2514f7cf90 /src | |
parent | 94b65bb3936b607a6bc85fe23176ff855c722519 (diff) | |
parent | a1ffb5e73760e0caaca2deb8fc5a18840f968f1c (diff) | |
download | vyos-1x-e520e08410131a1a65723fd32aeb1d278efa42c4.tar.gz vyos-1x-e520e08410131a1a65723fd32aeb1d278efa42c4.zip |
Merge pull request #1939 from sever-sever/T5145
T5145: Add maximum number of all logins on system
Diffstat (limited to 'src')
-rwxr-xr-x | src/conf_mode/system-login.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/conf_mode/system-login.py b/src/conf_mode/system-login.py index d15fe399d..fbb013cf3 100755 --- a/src/conf_mode/system-login.py +++ b/src/conf_mode/system-login.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (C) 2020-2022 VyOS maintainers and contributors +# Copyright (C) 2020-2023 VyOS maintainers and contributors # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 or later as @@ -40,6 +40,7 @@ from vyos import airbag airbag.enable() autologout_file = "/etc/profile.d/autologout.sh" +limits_file = "/etc/security/limits.d/10-vyos.conf" radius_config_file = "/etc/pam_radius_auth.conf" # LOGIN_TIMEOUT from /etc/loign.defs minus 10 sec @@ -164,6 +165,9 @@ def verify(login): if ipv6_count > 1: raise ConfigError('Only one IPv6 source-address can be set!') + if 'max_login_session' in login and 'timeout' not in login: + raise ConfigError('"login timeout" must be configured!') + return None @@ -226,6 +230,14 @@ def generate(login): if os.path.isfile(radius_config_file): os.unlink(radius_config_file) + # /etc/security/limits.d/10-vyos.conf + if 'max_login_session' in login: + render(limits_file, 'login/limits.j2', login, + permission=0o644, user='root', group='root') + else: + if os.path.isfile(limits_file): + os.unlink(limits_file) + if 'timeout' in login: render(autologout_file, 'login/autologout.j2', login, permission=0o755, user='root', group='root') |