Qual é o arquivo de script correto para colocar “set -o vi” em?

1

Devo acrescentar que quero ativá-lo para todos os usuários em shells interativos (bash), por padrão. Embora, eu esteja fazendo isso no meu sistema em casa, onde eu sou o único usuário, mas eu quero que o root também esteja ativado para shells interativos.

Eu estou querendo saber se devo adicionar um arquivo set-readline.sh com essa linha em /etc/profile.d/ ou fazê-lo em /etc/profile , ou onde (e talvez como) devo fazer isso corretamente?

    
por Michael Goldshteyn 09.06.2018 / 20:33

1 resposta

1

Quando sua distribuição tem /etc/profile.d , geralmente significa que o /etc/profile ou equivalente de qualquer shell compatível com Bourne / POSIX irá fornecer arquivos todos correspondentes a /etc/profile.d/*.sh . Então, se você quiser adicionar sua própria personalização a todos os usuários, crie seu próprio arquivo, por exemplo, /etc/profile.d/set-vimode.sh .

No entanto, set -o vi é uma configuração de shell e, como tal, não será herdável de um processo para outro. Então você deve configurá-lo no início de cada shell, não apenas para o shell de login. O local certo para configurações globais dessa natureza seria /etc/bash.bashrc para Bash. Outras conchas terão outras convenções.

Assim como Kusalananda nos comentários, eu também gostaria de pedir que você não altere os padrões globais, embora - como você disse - você seja o único usuário deste sistema. Se você já trabalhou como parte de uma equipe de administradores de sistema, e essa equipe tem pelo menos um membro com strongs preferências que entram em conflito com a sua (alterar o padrão global pode criar uma quantidade surpreendente de hostilidade. (Estive lá, vi isso.)

A única solução que será feliz para todos será usar sudo -s para tornar-se root com a sudoers opção always_set_home unset, para que o shell raiz use seu diretório inicial (e suas configurações preferidas) enquanto tendo a identidade de root . Isso permite que cada administrador da equipe tenha suas próprias preferências satisfeitas sem pisar em outras.

Note que em alguns sistemas com requisitos de auditoria mais strongs, você pode ser obrigado a executar somente cada comando privilegiado individual através de sudo e não usar um shell rodando como root, para fornecer um log claro de quais comandos privilegiados foram usados, quando e por quem. É claro que você pode fazer o que quiser em seu sistema doméstico, mas se achar que um dia poderá ser empregado como administrador de sistemas em um ambiente financeiro, de saúde ou sensível à segurança nacional, o hábito de evitar trabalhar em um shell raiz interativo serviria bem a você.

    
por 11.06.2018 / 00:54