Sudo password is temporarily stored in SSH session memory (cleared on disconnect)
Currently supports delete operation with sudo retry (other operations can be added similarly)
Changes
Backend: Add sudoPassword field to SSH session, execWithSudo helper function, /sudo-password endpoint
Backend: Modify delete operation to auto-retry with sudo when password is set
Frontend: Add SudoPasswordDialog component for password input
Frontend: Modify FileManager.tsx to detect needsSudo response and show dialog
i18n: Add translation keys for sudo dialog
Security
Password stored only in memory, never persisted to database
Automatically cleared when SSH session disconnects
Uses sudo -S to pass password via stdin (not exposed in command line)
Test Plan
Delete a file in /etc or other protected directory as non-root user
Permission denied triggers sudo password dialog
After entering correct password, operation succeeds
Same session reuses sudo password for subsequent operations
## Summary
- Add sudo password dialog when file operations encounter permission denied errors
- Sudo password is temporarily stored in SSH session memory (cleared on disconnect)
- Currently supports delete operation with sudo retry (other operations can be added similarly)
## Changes
- **Backend**: Add `sudoPassword` field to SSH session, `execWithSudo` helper function, `/sudo-password` endpoint
- **Backend**: Modify delete operation to auto-retry with sudo when password is set
- **Frontend**: Add `SudoPasswordDialog` component for password input
- **Frontend**: Modify `FileManager.tsx` to detect `needsSudo` response and show dialog
- **i18n**: Add translation keys for sudo dialog
## Security
- Password stored only in memory, never persisted to database
- Automatically cleared when SSH session disconnects
- Uses `sudo -S` to pass password via stdin (not exposed in command line)
## Test Plan
- [ ] Delete a file in `/etc` or other protected directory as non-root user
- [ ] Permission denied triggers sudo password dialog
- [ ] After entering correct password, operation succeeds
- [ ] Same session reuses sudo password for subsequent operations
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Changes
sudoPasswordfield to SSH session,execWithSudohelper function,/sudo-passwordendpointSudoPasswordDialogcomponent for password inputFileManager.tsxto detectneedsSudoresponse and show dialogSecurity
sudo -Sto pass password via stdin (not exposed in command line)Test Plan
/etcor other protected directory as non-root user