aleksmanson
@aleksmanson

Как интегрировать некоторые команды bash?

Как мы все знаем в командной строке (Bash) имеется ряд команд: ls, nano, node, webpack и т.д., в зависимости того или иного пакета. Суть в том, что эти заклинания должны где-то храниться, вопрос где?
В моем случае столкнулся с проблемой связанной с окружением root-a и user-a. В первом случае некоторые команды (нужные user-у) находятся и выполняются под root-ом, в остальном для простого юзера, те же команды простых пакетов(таких как webpack), не находятся.
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 3
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Это не заклинания, а просто исполняемые файлы.
Баш выполняет поиск внешних команд по директориям, которые перечислены в переменной PATH ((разделитель двоеточие)

1. В отличие от Windows, баш не будет искать файл в текущей директории - исключительно по директорям, перечисленным в PATH
2. Порядок имеет значение - выполнится первый найденный файл.
3. внутренние команды bash и alias-ы имеют приоритет.

Просто добавьте каталог с нужным вам файлом в PATH например так:
PATH=$PATH:/new/directory

видимо у юзера root в профайле PATH отличается от вашего юзера.
Ответ написан
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
Суть в том, что эти заклинания должны где-то храниться, вопрос где?

/bin, /usr/bin, /sbin, /usr/sbin и прочие каталоги, входящие в общий список поиска исполняемых файлов, который хранится в переменной PATH
В первом случае некоторые команды (нужные user-у) находятся и выполняются под root-ом

Далеко не все команды имеет смысл выполнять юзеру - у него банально не хватит прав их выполнить. И далеко не всегда имеет смысл давать юзеру права на выполнение этих команд
Ответ написан
Комментировать
shambler81
@shambler81 Куратор тега Linux
1. Учим мат часть коллеги which ls
2. Необходимые для юзера команды можно положить /usr/bin
3. Так же не забывайте про SUID/SGID что позволит вам хранить некоторые из исполняемых файлов в папке рута НО позволит их выполнять их без введения пароля от его имени. Пример ping - команда затрагивающая интерфйсы но не требует ввода пароля рут.
4. Если этого не хватило то вот еще Jailkit
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы