Commit graph

51 commits

Author SHA1 Message Date
Gerd v. Egidy 06f9d9d397 Add sysctl option to the "sysconfig" scope of YAML config file
Allows to customize sysctl entries of the kernel from the yaml config.
2022-10-02 19:04:41 +02:00
Gerd v. Egidy b0bd95a977 Add rclone option to the "sysconfig" scope of YAML config file
rclone needs a rclone.conf file before it can be used, it contains
the urls, login data and similar.

Use the sysconfig.rclone.config hierarchy instead of just sysconfig.rclone
to allow adding features later. These could be support for encrypted
rclone config files (these would then go into sysconfig.rclone.crypted_config)
or things like automounting.
2022-08-24 13:18:08 +02:00
Gerd v. Egidy 3e41c00fc4 allow to configure bookmarks for Firefox in the "sysconfig" scope of the yaml config file 2022-06-08 22:35:55 +02:00
Gerd v. Egidy 40aeaea9be apply sysconfig.ca-trust to Firefox too
Firefox doesn't use the system CA database but has it's own. Use the
policies.json file to let Firefox trust the entries from the
sysconfig.ca-trust of the YAML config too.
2022-06-08 21:33:54 +02:00
Gerd v. Egidy 49ea71d62b add yaml config option to add ssh authorized_keys (sysconfig.authorized_keys) 2022-06-04 23:05:22 +02:00
Gerd v. Egidy 919914d48b add yaml config option to set timezone (sysconfig.timezone) 2022-06-04 19:09:44 +02:00
Gerd v. Egidy ca74778681 show output of sysrescue-initialize.py on the boot console
show it immediately, not when the buffer is full. This also yields proper
timestamps in the journal in case some part of it takes longer to complete.
2022-06-04 17:08:53 +02:00
Gerd v. Egidy 36dc530a50 Properly cast floats to booleans in sysrescue-autorun and sysrescue-initialize.py
When the lua script parses the YAML config, it converts a `1` to `1.0` because in
lua all numbers are floats. So it writes out `1.0`, which is then loaded by the
python scripts later. Make the type conversion for booleans aware of this.

This allows to write something like `ar_disable: 1` in the YAML and have it
acted upon as expected.
2022-05-22 21:14:01 +02:00
Gerd v. Egidy cecd6946ff sysrescue-autorun: improve type casting for booleans
The recently implemented type casting code doesn't work intuitively for
booleans: for example it treats a string "0" as False and doesn't show
an error message for it. So the user might be unaware of this.

So add a dedicated conversion function for booleans.

Also add checks for conversions from dicts and lists, forbid to cast them
to strings because that is most probably not what the user wants.
2022-05-22 15:49:10 +02:00
Gerd v. Egidy afb77e30c5 sysrescue-initialize.py: Ensure the values given in the config file have the correct types
With the new config file merging the user could accidently overwrite the
config values with wrong types, for example a boolean with a dict or list.
This could lead to the script aborting with an exception.

Use explicit type casting and default values to ensure correct operation
in this case. This is the same as recently implemented for autorun.

Implement a dedicated conversion function for booleans to for example
treat a string "0" as False, python by default would interpret it as True.
2022-05-22 15:43:10 +02:00
pfeilmann ca084e664f caste the config with the same type as the defaultval 2022-05-22 10:23:59 +00:00
Gerd v. Egidy ae8a15c2b2 Merge branch 'autoterminal' into 'main'
implement autoterminal: automatically started scripts that take over a virtual terminal for user interaction

See merge request systemrescue/systemrescue-sources!196
2022-05-21 20:21:03 +00:00
Gerd v. Egidy 4daea6433e Add workaround for systemd not re-evaluating dependencies while running a transaction
As described in #279, systemd does not re-evaluate the dependencies of changed units and
targets when daemon-reload is executed. It just continues it's transaction as it was
configured when starting the transaction.

So a late-loaded SRM can't autostart a service.

To work around this, add an extra call to "systemctl --no-block start multi-user.target"
after the daemon-reload. This will create a new transaction after the current one and
allow new services to be added to multi-user.target in a late-loaded SRM.

This means of course that this workaround only works for multi-user.target, not other
services or targets.
2022-05-21 21:41:39 +02:00
Gerd v. Egidy c2060e8a73 implement handling of serial consoles for autoterminal
serial consoles have separate systemd services (serial-getty@.service). We need to adapt
the handling and also need some different options for them than for regular gettys.

To allow sysrescue-initialize.py to differentiate between regular consoles and serial ones
they must be configured with the prefix "serial:" in the yaml, for example like this:

autoterminal:
    "serial:ttyS0": "/usr/bin/bash"
2022-05-12 22:53:57 +02:00
Gerd v. Egidy c3b0b576a4 Implement main part of autoterminal feature
See #258
2022-05-12 22:51:48 +02:00
Francois Dupoux cfcfd6dd7a Merge branch 'lua-config-once' into 'main'
execute sysrescue-configuration.lua only once

See merge request systemrescue/systemrescue-sources!193
2022-05-09 11:26:49 +00:00
Gerd v. Egidy e87660beeb execute sysrescue-configuration.lua only once
Before this patch sysrescue-configuration.lua was executed twice each boot:
(1) during initramfs stage (2) in the regular system as sysrescue-configuration.service

While in theory both runs should create the same output, this isn't guaranteed and
differences could appear for example because of network issues. Finding and debugging
these is difficult because the output of sysrescue-configuration.lua created during
initramfs isn't available anymore when the final system is running.

This patch lets sysrescue-configuration.lua just run once during initramfs. The
output JSON file is then written to the new tmpfs mounted dir /run/archiso/config/.
This dir is also made the new default location for sysrescue-effective-config.json.

A symlink from /etc/sysrescue/sysrescue-effective-config.json to the new location
is created for compatibility with previous releases.
2022-04-25 20:31:18 +02:00
Gerd v. Egidy 8cb9d2de6b harden sysrescue-autorun sysrescue-initialize.py against missing config values
Until now sysrescue-configuration.lua always ensured the default values were
in the effective JSON config because there was no way to remove them. Now the
lua script is improved to allow full config merging, including a delete function.
This could lead to the user accidently removing a value. The scripts did not
expect this and accessed non existing keys, leading to an exception.

This is fixed with this commit.
2022-04-24 01:08:27 +02:00
Gerd v. Egidy a100257d96 Add script and config.yaml parameter for late-loading of SystemRescueModules 2022-03-27 14:07:38 +00:00
Gerd v. Egidy 78e9f65208 Allow all kinds of autorun scripts (#245) 2022-01-31 21:13:27 +00:00
Francois Dupoux 35bd8314f3 Use generic logic for overriding config entries from values in yaml config files (#251) 2022-01-28 20:34:23 +00:00
Francois Dupoux ca6bcd6548 Implement the primary configuration processing script in lua (#251) 2022-01-26 20:07:53 +00:00
Gerd v. Egidy 0a9b3250cf Support for adding Certification Authorities (CAs) via YAML config
This allows to add additional CAs as trust anchors via the root key
"ca-trust" in the YAML config files.

Why is this helpful and can't be done for example with SRMs?

After the CA files are copied, "update-ca-trust" must be called. This
updates *all* ca trust files. This means your SRM will override all
trust files with the ones used when creating the SRM.

When you then use the SRM with a newer version of SystemRescue, you will
still use the old ca trust files from when the SRM was built.
2022-01-16 19:03:51 +01:00
Francois Dupoux a4d96bb424 Add support for yaml configuration files in autorun 2022-01-09 16:14:48 +00:00
Francois Dupoux e037cc089c Name the folder for configuration files "sysrescue.d" rather than "config.d" (#170) 2022-01-03 13:39:43 +00:00
Francois Dupoux c91a4bf8f4 Make the search for config files with a yaml extension case insensitive 2022-01-02 15:49:24 +00:00
Francois Dupoux 7c5ce8cfdf Initial support for defining the global configuration with yaml file (#170) 2022-01-01 11:23:52 +00:00
fdupoux b6f2c86c0c Remove the legacy shell version of sysrescue-initialize 2021-12-30 19:54:33 +00:00
fdupoux 0b3f0ce80e Convert sysrescue-initialize to python (#170) 2021-12-30 19:54:33 +00:00
Marcos Mello 54236ce107 Fix comment grammar 2021-11-11 14:38:26 -03:00
Marcos Mello 7744f40caa Make dovnc imply dostartx
Also do not append more than once to /root/.bash_profile in case both dovnc and dostartx are set.

Fixes systemrescue/systemrescue-sources#234
2021-11-10 21:13:13 -03:00
Marcos Mello 3478f96cb8 Fix vncpass= boot option 2021-11-08 11:36:15 -03:00
Marcos Mello d9b36c1c17 Add dovnc boot option
Fixes systemrescue/systemrescue-sources#228
2021-11-07 07:29:53 -03:00
Marcos Mello 08c163345d Add noautologin boot option
Fixes systemrescue/systemrescue-sources#189
2021-10-06 16:33:35 -03:00
Marcos Mello 0538667468 Add dostartx boot option
Fixes systemrescue/systemrescue-sources#222
2021-10-05 21:07:21 -03:00
fdupoux 00a532d4f9 Update the command used to generate a password hash 2021-08-28 10:20:56 +01:00
pfeilmann b85b58365e Add ar_attempts 2021-07-08 17:21:08 +00:00
Gerd v. Egidy f04f6fe827 make nofirewall option work reliable, needs explicit systemd service ordering
Fixes #197
2021-05-03 21:21:15 +02:00
fdupoux 45d27a0be6 Rename project : SystemRescueCd ==> SystemRescue 2020-09-12 11:47:11 +01:00
fdupoux ddd5633b72 Updated path to python3 2020-08-03 20:44:48 +01:00
Richard DUMAIS 97680ce9ed permit httpS to download autorun scripts 2020-08-03 15:31:18 +02:00
fdupoux d2f290f8e8 Copy autorun scripts to new location when copytoram is enabled (#126) 2020-07-25 14:49:56 +01:00
Marcos Mello a02b8535bd Simplify sysresccd-initialize script (again)
One less execve().
2020-04-12 16:20:51 -03:00
Marcos Mello 42c67ee5d3 Simplify sysresccd-initialize script
Less variables, less forked processes.
2020-04-11 22:34:30 -03:00
Marcos Mello 8c6910583b Add rootshell boot option
chsh does input validation.

Fixes fdupoux/sysresccd-src#77
2020-03-05 07:34:47 -03:00
Francois Dupoux 21f20fca19 Merge branch 'fix-keymap' into 'master'
Fix and simplify keymap configuration

Closes #74

See merge request fdupoux/sysresccd-src!4
2020-02-29 11:07:31 +00:00
Marcos Mello f7dca9e0b7 Fix and simplify keymap configuration
Use localectl to set kbd and x11 keymaps.

Order sysresccd-initialize.service before getty-pre.target (pasive target,
pulled in manually) to ensure console keymap is proper configured when
getty@.service runs.

Fixes #74
2020-02-28 10:30:32 -03:00
Marcos Mello f5fed4cdae Minor sysresccd-initialize simplification
No functional change.
2020-02-28 09:45:18 -03:00
fdupoux 7c256c2799 Enabled iptables/ip6tables by default 2019-12-29 20:45:42 +00:00
fdupoux 30483ee7df SystemRescueCd-6.0.1 2019-02-09 14:21:40 +00:00