O mesmo que os outros, esta é a minha opinião:
- Is installing zsh on production server harmless to the system?
Defina 'inofensivo'. Estritamente falando, não causa dano direto. No entanto, qualquer código que esteja em seu sistema de produção é um vetor de ataque em potencial. Nesse sentido, não é verdadeiramente "inofensivo", na medida em que poderia ser usado para um ataque ao sistema. Há também algumas outras maneiras indiretas de causar problemas. O ZSH é um pouco mais ávido por recursos do que o bash, por exemplo, o que poderia importar em um sistema com capacidade próxima.
- Would you allow to install zsh in this case, and why so?
Dependendo das circunstâncias exatas, talvez já o tenha instalado.
Todos os meus sistemas pessoais têm o ZSH instalado e definido como o shell padrão para todos, incluindo o root. Isso é simplesmente porque estou trabalhando regularmente a partir de um shell local nesses sistemas, e uso ativamente o ZSH em muitos casos.
No entanto, todos os sistemas que administro no trabalho não o possuem. Aproximadamente 95% do trabalho administrativo que faço para eles não envolve me tocar realmente em um shell nesses sistemas (eu faço um lote através do Ansible no trabalho), então não faz sentido fazer de mim um ambiente familiar. Eu também seria muito improvável de instalá-lo em qualquer coisa, mas nossos sistemas de desenvolvimento real, e não há nenhuma chance no inferno que eu iria instalá-lo em qualquer coisa que seja diretamente acessível fora do local.
- Does it make sense to restrict users with bash on production server?
Eu questionaria a praticidade de permitir que usuários comuns toquem sistemas de produção em todos os casos além de casos muito restritivos que não envolvem acesso real ao shell.
Por exemplo, onde eu trabalho, apenas o departamento de TI e as pessoas diretamente responsáveis pela manutenção de nosso site têm acesso HTTPS aos nossos servidores da Web. O pessoal de TI (inclusive eu) deve fazer login com uma conta especial usada apenas para administração dos servidores da Web e, mesmo assim, eles têm acesso limitado aos sistemas, a menos que estejam no console físico na sala do servidor. Os web designers só têm acesso via SFTP à raiz do site, e nada mais. Dado isso, não há necessidade de nenhum shell, exceto o bash (que é nosso padrão internamente para uso administrativo).
Da mesma forma, para nossos servidores de arquivos internos, somente o departamento de TI tem acesso real ao shell. Outros usuários têm acesso especialmente limitado a determinados diretórios, geralmente permitindo protocolos regulares de servidor de arquivos (SMB, NFS, etc), além de SFTP e, em alguns casos, rsync, mas nenhum deles tem acesso real ao shell, porque eles realmente não precisam isso.