DietPi utility aliases fail to work with sudo #424
I am getting the same symptoms as this bug reported in 2016.
When logging in as normal user via ssh and using sudo I get an error ‘Command not found’ when calling the dietpi- menus although it works for linux commands
Also works as root lgin without sudo
If I uninstall fish it reverts to bash and everything works.
A new Fish install - same problem
Checked the Alias’s in ‘Dietpi.fish’,
alias sudo='sudo ’ exists
as does alias’s for menus with correct paths
Dietpi v9.13.2
Fish v3.6.0
Headless Raspberry Pi 5
Known issue. We still need to find out how this can be achieved in fish. In bash, sudo can call aliases when defining an alias for sudo itself:
alias sudo='sudo '
This does not work in fish. No alias doesn’t work either. Some research so far gave only very complicated workarounds which all have certain limitations. And I do not like to bloat the sudo command with large complicated code block running to take apart and recombine passed arguments.
I just have the following idea, if there is no good solution for calling aliases via sudo in fish: Our scripts do a root permission check where required. This check could just try to call itself with sudo, like so:
exec sudo "$0" "$@"
wIth some sanity check, that $0 is one of:
dietpi-*
/boot/dietpi/dietpi-*
/boot/dietpi/func/dietpi-*
It does not solve the sudo problem, but makes using sudo manually obsolete, at least. I hope $0 and $@ have the same meaning in fish.
True solution is to put the scripts into $PATH to make the aliases obsolete.