initial implementation of install subcommand#16
Conversation
|
Tried this on Ubuntu 24.04 (LTS) with commit 5f11ec3, works fine with a small "issue" (see Details |
|
Great, I fixed that and made some other improvements:
|
|
@lexming I don't think we should be asking for the Instead, we should detect whether We can also change the confirmation to a single one at the very start, which lists all the things that will be done, and asks the user to confirm that's all good and that those system-wide actions can be taken. |
|
I would even go further and limit the actions that can be taken when running with |
|
I disagree, it is much unsafer to do a Commands executed as root should be fine-grained, and keeping the user password in memory is a non-issue; program memory is safe. Passwords are not "naked" in memory, they are just in memory; and that is a standard practice. Program memory is not accessible except to the program itself (unless there would be a critical error like a buffer overflow). This code is not storing that password in any persistent memory, like a file; and it is not transmitting the password over the network. So the only way to get that string is by hacking the memory stack of python, good luck with that. update: if you are really concerned about security, the current setup can be improved by wiping the password after every use. But that will require to input that password on every command that needs root permissions. Would you prefer this approach? |
|
@lexming Right, OK, I see your point. We can also take into account that quick subsequent calls to In practice, that would mean you only need to ask the password once, and "wiping it" right after use makes sense, but I don't think it's that easy to do (since it's passed by value into functions). |
|
The user password is now systematically cleared after a timeout that starts with the password prompt. To keep things simple, the reset after the timeout is unconditional. Currently, the timeout is set in I moved the methods to run commands into their own class
|
Carries out a native installation of EESSI in localhost following the instructions in
https://www.eessi.io/docs/getting_access/native_installation/:
Supported Linux distros:
Screencast_20260210_014947.webm
Note: root permissions are required for system-wide installations. Only those commands that need root are executed with
sudo. User will only be prompted once for the password.Coded with the assistance of a local AI model (devstral-small-2)