Eu me conecto a um servidor via ssh.
Agora eu queria definir o shell para bash, porque no momento o shell é sh.
sudo /sbin/usermod -s /usr/bin/bash santi
Devo usar /bin/bash
ou /usr/bin/bash
ou não importa?
Eu me conecto a um servidor via ssh.
Agora eu queria definir o shell para bash, porque no momento o shell é sh.
sudo /sbin/usermod -s /usr/bin/bash santi
Devo usar /bin/bash
ou /usr/bin/bash
ou não importa?
Os shells permitidos estão listados no arquivo
/etc/shells
.Execute o
chsh
dasanti
conta, sem sudo. Isso impedirá que você use um shell não permitido.O administrador pode definir um shell não permitido, mas isso é uma má ideia, a menos que você esteja deliberadamente configurando uma conta de usuário com acesso restrito. Uma razão é que os usuários comuns não podem mais alterá-lo. Outro motivo é que as distribuições são
/etc/shells
atualizadas, portanto, uma atualização não impedirá que os usuários façam login, mas se você usar poderes de administrador para fornecer a uma conta um shell não permitido, o ônus recairá sobre você, tome cuidado para não bloquear essa conta fora.qual é a diferença entre /bin/zsh e /usr/bin/zsh?
Ambos
/bin/bash
e/usr/bin/bash
são caminhos válidos para o executável do shell Bash.A diferença entre
/bin/bash
e/usr/bin/bash
é histórica e depende das convenções e configuração do sistema.Tradicionalmente, o Bash era instalado no
/bin
caminho em sistemas Unix, algumas distribuições Linux modernas o armazenam no/usr/bin
caminho. A maioria dos sistemas cria links simbólicos de /bin/bash para /usr/bin/bash, o que significa que ambos os caminhos são equivalentes./usr/bin
é o local padrão para executáveis em nível de usuário na maioria das distribuições Linux modernas. Este caminho contém executáveis instalados pelo usuário e normalmente não é montado até mais tarde no processo de inicialização./usr/bin/bash
é o caminho para o executável bash se ele estiver instalado neste local.O link simbólico garante que os scripts e aplicativos legados que fazem referência
/bin/bash
continuarão a funcionar corretamente, mesmo que o executável do Bash esteja instalado em/usr/bin
Você pode usar
/bin/bash
ou/usr/bin/bash
nousermod
comando para definir o shell para o usuáriosanti
Ambos funcionarão corretamente.
zsh está em /usr/bin, mas também em /bin, qual é a diferença?
Diferenças entre /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
Padrão de hierarquia do sistema de arquivos
Diferença entre /bin/bash e /usr/bin/bash
Qual é a diferença se eu começar o bash com "/bin/bash" ou "/usr/bin/env bash"?
Para determinar qual é o caminho do
bash
executável em seu sistema, você pode usar o seguinte comando:Você também pode listar shells disponíveis em seu sistema:
Se você deseja uma maneira interativa de definir o shell:
Espero que isto ajude !
Se o bash estiver disponível em
/bin/bash
e/usr/bin/bash
(normalmente porque/bin
é um link simbólico/usr/bin
devido ao /usr merge ), isso não importa. Ambos funcionarão neste sistemaNo entanto, prefiro usar
/bin/bash
over/usr/bin/bash
, pois é o local tradicional onde foi instalado e seria mais compatível se executado em outros sistemas (se em vez de ser uma etapa manual isso fosse incluído em um script que pode ser executado em várias máquinas , ou se a localização do bash foi para escrevê-lo em um shebang)