É uma prática ruim definir o shell do root como algo diferente do padrão?

15

Uma vez um amigo meu (que é um usuário experiente em Unix / Linux) me disse que configurar o shell root para algo diferente de sh (ie bash ou zsh) pode criar problemas, porque algum script pode assumir que o shell é sh e faça algo estranho.

No entanto, acho que o Ubuntu tem o shell root padrão configurado para bash, e o Gentoo também usa o bash. Alguém pode quebrar o mito?

    
por phunehehe 02.10.2010 / 19:15

7 respostas

12

Sim. Se o sistema falhar durante a inicialização, você poderá efetuar login no shell de root. Se você tiver / usr separado, alguns shells podem falhar ao iniciar com êxito.

Eu aconselharia a criação da conta toor (uid 0, gid 0) com shell não padrão enquanto a raiz esquerda com o shell padrão.

    
por 02.10.2010 / 19:48
7

Não deve ser um problema.

Os arquivos script de shell codificam explicitamente com qual shell eles são executados. Ele é codificado na primeira linha ou outros programas ou scripts executam um shell específico e fornecem o script de shell como argumento.

O único programa em que posso pensar que usa as informações do shell da conta de usuário (além do processo de login) é o procmail. Muito engraçado se o seu usuário configurou como shell / bin / false no servidor de email ... Mas você geralmente não executa o procmail como root.

Outro candidato seria as linhas no crontab da raiz. Eu não sei qual é a política do crond que shell usar.

    
por 02.10.2010 / 19:38
3

Os scripts escritos para o shell bourne serão executados na maior parte do tempo contra BASH ou ZSH ou $ foo sem nenhum problema.

Em muitos sistemas Linux não há sh original instalado, em vez disso é frequentemente um link simbólico contra / bin / bash.

Se alguns scripts apenas "assumirem" que o shell é explicitamente sh, eles devem ser reescritos. Existe o mecanismo shebang para escolher qual interpretador seu script precisa. Se for o sh, o script deve incluir #!/bin/sh como a primeira linha.

Sua configuração de shell padrão não deve ser relevante neste contexto.

    
por 02.10.2010 / 19:24
2

Eu não acho que trocar o shell do root cause algum problema. Eu me lembro de alguns unices (talvez algumas variantes do BSD?) Tendo o tcsh como o shell padrão para o root.

Logins de raiz são raros de qualquer maneira. Normalmente, você faria login em sua própria conta e, em seguida, su ou sudo para root.

O que importa é que o shell do root tenha o menor número possível de dependências para ser utilizável em um contexto de reparação do sistema. Por exemplo, é uma boa ideia ter um shell raiz com ligação estática; algumas distribuições enviam uma versão estaticamente vinculada de bash ou zsh ou sash (um shell com muitos utilitários padrão integrados) . No entanto, isso não é tão importante se o sistema puder ser inicializado facilmente a partir de um CD de recuperação ou unidade USB.

    
por 23.10.2010 / 23:49
1

O shell de login de um usuário não afeta o processo de inicialização. Você pode definir este shell para o que você quiser. Nem todos os sistemas têm o bash e funcionam bem. Além disso, se for /usr/bin/zsh foi instalado errado, todas as camadas do sistema devem estar em /bin . No entanto, você não deve alterar /bin/sh para apontar para algo diferente do padrão (a menos que você saiba o que está fazendo) quantos scripts tiverem #!/bin/sh , o que geralmente aponta para bash, quando eles devem ter #!/bin/bash porque use bashisms e outros comportamentos que não funcionem em zsh ou dash .

    
por 24.10.2010 / 01:25
0

Eu tenho bash como shell padrão para o root. Eu usei zsh por algum tempo, mas depois voltei para bash . Qual shell você usa, não importa muito.

É apenas um problema, se mais de uma pessoa tiver acesso root. Nesse caso, você pode selecionar um 'denominador comum' que geralmente é bash, já que este é o shell mais usado.

    
por 03.10.2010 / 08:23
0

Em relação ao Solaris / illumos, o Solaris Root Shell Mini -FAQ mencionar

Some sysadmins still recommend against changing the root shell on
Solaris systems. Ask why and you may be told that root needs a
statically linked shell which is not dependent on the dynamic
libraries under /usr/lib. This was true in the past but is not
necessarily the case today. Solaris, when properly configured, is like any other version of Unix and can support whatever shell you define, for root or any other account.

Então, sim, se você estiver usando Solaris ou Illumos, não há problema em usar shells que não sejam sh .

    
por 20.06.2018 / 17:26