É comum instalar o zsh em servidores de produção?

É comum instalar o zsh em servidores de produção?

A pergunta pode não ser clara e ser muito ampla, mas qualquer resposta, por mais curta ou ampla que seja, é muito apreciada.

Há algum tempo pedi para instalar o zsh em nosso servidor de produção. Minhas empresas administrativas responderam que isso não pode ser feito, pois se trata de produção, não de servidor de desenvolvimento.

Usei zsh & oh-my-zsh nos últimos 5 anos e sou muito apegado a ele, o zsh torna meu trabalho mais fácil e rápido. Mas não foi o argumento suficiente.

Não sou forte em segurança ou outras questões que possam estar envolvidas aqui, por isso minhas perguntas são:

  1. A instalação do zsh no servidor de produção é inofensiva para o sistema?
  2. Você permitiria instalar o zsh neste caso e por que?
  3. Faz sentido restringir usuários com bash no servidor de produção?

Responder1

zshé apenas um shell, não inicia nenhum serviço, não vem com nenhum comando setuid. Portanto, a mera instalação do pacote não fará nada até que alguém ou algo realmente o utilize. Como não precisa de nenhum privilégio, qualquer usuário pode instalá-lo por conta própria em seu diretório inicial ou em qualquer lugar ao qual tenha acesso.

Se não fossequalidade de produção, pode-se argumentar que torná-lo o shell de login e o usuário administrador apresentaria algum risco, mas com sua sintaxe muito mais sã do que outros shells como bashou tcsh, eu diria que isso melhoraria consideravelmente as coisas.

Embora seu uso principal seja como um shell interativo, eu diria que escrever scripts zshprovavelmente tornaria scripts mais seguros e confiáveis ​​do que bashscripts (veja quantas pessoas, sem saber, escrevem bashscripts em zshsintaxe quando se esquecem de citar suas variáveis ​​e como alterar o shebang de #! /bin/bashpara #! /bin/zsh -corrigiria muitos dos bugs em seus scripts).

De qualquer forma, a instalação zshestá entre as primeiras coisas que venho fazendo em todas as implantações de servidores em todos os locais onde trabalhei.

No entanto, geralmente não o torno o shell de login de nenhum usuário por padrão, pois não é incomum que alguns softwares esperem um ambiente centrado no bash.

Responder2

Igual aos outros esta é a minha opinião:

  1. A instalação do zsh no servidor de produção é inofensiva para o sistema?

Defina 'inofensivo'. A rigor, não causa danos diretos. No entanto, qualquer código que esteja no seu sistema de produção é um potencial vetor de ataque. Nesse sentido, não é verdadeiramente “inofensivo”, na medida em quepoderiaser usado para um ataque ao sistema. Existem também outras maneiras pelas quais isso indiretamente pode causar problemas. O ZSH consome um pouco mais de recursos do que o bash, por exemplo, o que pode ser importante em um sistema funcionando perto da capacidade.

  1. Você permitiria instalar o zsh neste caso e por que?

Dependendo das circunstâncias exatas, talvez eu já o tenha instalado.

Todos os meus sistemas pessoais têm o ZSH instalado e definido como shell padrão para todos, incluindo o root. Isso ocorre simplesmente porque trabalho regularmente em um shell local nesses sistemas e uso ZSH ativamente em muitos casos.

Porém, todos os sistemas que administro no trabalho não o possuem instalado. Cerca de 95% do trabalho administrativo que faço para eles não envolve que eu realmente toque em um shell desses sistemas (eu faço ummuitoatravés do Ansible no trabalho), então não faz sentido torná-lo um ambiente familiar. Também seria muito improvável que eu o instalasse em qualquer coisa que não fosse nossos sistemas de desenvolvimento reais, e não há nenhuma chance de instalá-lo em qualquer coisa que seja diretamente acessível fora do local.

  1. Faz sentido restringir usuários com bash no servidor de produção?

Eu questionaria a praticidade de permitir que usuários regulares tocassem nos sistemas de produção além de certos casos muito restritivos que não envolvem acesso real ao shell.

Por exemplo, onde trabalho, apenas o departamento de TI e as pessoas diretamente responsáveis ​​pela manutenção do nosso site têm tudo menos acesso HTTPS regular aos nossos servidores web. O pessoal de TI (inclusive eu) deve fazer login com uma conta especial usada apenas para administração dos servidores web e, mesmo assim, eles têm acesso limitado aos sistemas, a menos que estejam sentados no console físico da sala do servidor. Os web designers só têm acesso SFTP à raiz do site, enadaoutro. Diante disso, não há necessidade de nenhum shell, exceto o bash (que é nosso padrão interno para uso administrativo).

Da mesma forma, para nossos servidores de arquivos internos, apenas 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 na verdade não precisam isto.

Responder3

Na minha experiência, sim, é incomum instalar o zsh em um servidor de produção. Dito isto, trabalho mais com clientes mais “conservadores” (bancos, administrações, etc.), por isso a sua milhagem pode variar.

  1. O próprio Zsh éinofensivo. É 'apenas mais uma concha', como bash, ksh,... No entanto, em muitas empresas, a política de segurança élimitar tanto quanto possível a superfície de ataque, ou seja, não instale nada a menos que seja necessário. Mesmo que zsh seja inofensivo,sua base de código pode conter bugs. Ler sobreTrauma pós guerrase você ainda não sabe sobre isso. :)
    Dito isto, há uma certa clemência com 'mercadorias' como ter o vim em vez de apenas o vi. Zsh poderia se enquadrar nesta categoria.

  2. Não está em produção, não acontecendo. Além de reduzir a superfície de ataque, há também o fato de que você precisará testar seus scripts duas vezes - uma vez com zsh e outra com bash. Isso leva tempo e dinheiro.

  3. Eu não chamaria isso de restrição ao bash:existe algo que você possa fazer com o zsh que não possa ser feito com o bash?

Nota final:bash é praticamente o padrão da indústria. É o shell padrão para a maioria das distribuições de nível empresarial (RHEL, SUSE,...), bem como para muitas distribuições muito populares, como Debia, Ubuntun...
Eu tentei "novos" shells ao longo dos anos: zsh e fish são dois que eu gostei muito. Para uso doméstico, talvez, no trabalho, seja bash o tempo todo (e ksh ao trabalhar com AIX etc.). Acabo usando o bash em casa também, velhos hábitos são difíceis de morrer.

Responder4

Outras opiniões disponíveis, mas aqui está a minha.

  1. A instalação do zsh no servidor de produção é inofensiva para o sistema?

A introdução de novo software raramente é inofensiva. Por exemplo, surge com a necessidade de garantir que quaisquer vulnerabilidades associadas a ele sejam identificadas e corrigidas.

  1. Você permitiria instalar o zsh neste caso e por que?

Não. Gostaria que um benefício tangível fosse identificado.

  1. Faz sentido restringir usuários com bash no servidor de produção?

Sim, bashé ótimo :-) E se algum grupo de usuários de nicho na empresa começar a escrever zshscripts sem que as equipes de suporte mais amplas tenham conhecimento disso, eles ficarão surpresos.

informação relacionada