Eu corri para a mesma coisa que eu tinha um alias de shell similar. Eu encontrei na manpage uma opção "-s" que parecia resolver isso para mim:
-s, --shell SHELL
The shell that will be invoked.
ou seja:
zsu='su root -p -s $SHELL'
Eu tenho vários boxen rodando o Debian Wheezy. Eles parecem ter o problema altamente irritante que pressionar ctrl + c em um shell que foi su: d para root irá matar su, não o que estiver rodando no shell de root. Isso faz com que trabalhar com, e. ping ou tcpdump quase impossível. Pelo que entendi, a questão é debatida em extensão no erro da Debian # 628843 mas há parece não haver consenso.
[20:38] alias
zsu='su root -p -c $SHELL'
[20:38] zsu
Password:
zsh compinit: insecure directories and files, run compaudit for list.
Ignore insecure directories and files and continue [y] or abort compinit [n]? y
[20:38] <- I simply pressed ctrl+c
Session terminated, terminating shell...
[20:38] ...killed.
Eu preciso encontrar uma correção para isso. Posso executar o su de forma diferente ou há algum substituto que eu possa usar? (De preferência não sudo e eu preferiria não permitir o login da raiz ssh.)
Tags su debian-wheezy