Onde armazenar os scripts bash que todos os usuários podem executar no Debian?

6

Eu tenho muitos scripts bash no meu servidor, que todos os usuários podem usar.

mas parece que a localização

/usr/local/sbin

não é o melhor lugar.

Eu não quero usar o diretório inicial dos usuários, pois todos podem executá-los.

existe uma convenção sobre onde armazená-los no Debian?

    
por rubo77 15.05.2013 / 14:24

1 resposta

7

O local "oficial" para executáveis locais é /usr/local/bin . Este diretório geralmente está no $ PATH de todos os usuários por padrão. Tradicionalmente, os programas que não são instalados através de um gerenciador de pacotes (por exemplo, apt ) são armazenados no diretório /usr/local/bin e aqueles instalados pelo gerenciador de pacotes em /usr/bin . Veja aqui para mais informações e aqui para as definições oficiais e mais detalhes do que você jamais precisará.

Estas são apenas convenções e você está livre para usar seu próprio diretório. Por exemplo, para armazenar scripts que podem ser executados por todos os usuários em /usr/local/scripts , é necessário seguir estas etapas:

  1. Crie o diretório (suponho que você tenha sudo configurado, se não apenas mude para root com su ) e permita a execução:

    sudo mkdir /usr/local/scripts
    sudo chmod 755 /usr/local/scripts
    
  2. Adicione este diretório a todos os $ PATHs do usuário (isso pressupõe que todos estejam usando o bash). Adicione esta linha a /etc/profile :

    export PATH=$PATH:/usr/local/scripts
    

Uma maneira melhor (como apontou Michał Šrajer nos comentários) é que funcionará para a maioria dos shells ( Pelo menos, qualquer um que use o módulo pam_env seria definir o $ PATH em /etc/environment Por exemplo:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/scripts"
    
por 15.05.2013 / 14:46