7

У меня на сервере много сценариев bash, которые могут использовать все пользователи.

но похоже место

/usr/local/sbin

это не лучшее место.

Я не хочу использовать домашний каталог пользователей, потому что каждый может их выполнить.

Есть ли соглашение о том, где их хранить в Debian?

1 ответ1

9

"Официальным" местом для локальных исполняемых файлов является /usr/local/bin . Этот каталог обычно находится в $ PATH всех пользователей по умолчанию. Традиционно программы, которые не устанавливаются через менеджер пакетов (например, apt), хранятся в каталоге /usr/local/bin а программы, установленные менеджером пакетов в /usr/bin . Смотрите здесь для получения дополнительной информации и здесь для официальных определений и более подробной информации, чем вам когда-либо понадобится.

Это всего лишь соглашения, и вы можете использовать свой собственный каталог. Например, чтобы сохранить сценарии, которые могут выполняться всеми пользователями, в /usr/local/scripts вам необходимо выполнить следующие шаги:

  1. Создайте каталог (я предполагаю, что вы настроили sudo , если не просто переключитесь на root с помощью su) и разрешите выполнение:

    sudo mkdir /usr/local/scripts
    sudo chmod 755 /usr/local/scripts
    
  2. Добавьте этот каталог ко всем пользовательским $ PATH (предполагается, что все используют bash). Добавьте эту строку в /etc/profile:

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

Лучший способ (как указал @ Michał Šrajer в комментариях), который будет работать для большинства оболочек (по крайней мере, для любого, использующего модуль pam_env , - установить $ PATH в /etc/environment . Например:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/scripts"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .