Intereting Posts
Установить изображение пользователя lightdm Как скопировать в форматированное изображение без привилегий root? Настройка физической / виртуальной сети Синтаксическая ошибка, неожиданный идентификатор Сколько у меня разных видеокарт? Как я могу запретить редактируемые команды перезаписывать оригинал? Или вернуть изменения? Как отлаживать и исправлять медленную автозаполнение в bash? Инструменты управления задачами с клавиатурной навигацией, которые работают в терминале Обновления Fedora 15 Программный RAID с использованием сетевых ресурсов в качестве дисков Файлы размером более 1 ГБ и старше 6 месяцев Может ли стек быть заменен на диск в Linux, и его можно предотвратить Использование qemu-system-x86_64 с ключом -enable-kvm на VirtualBox Что означает «патч неожиданно заканчивается в середине линии»? Объединяйте и сопоставляйте совпадающие и не соответствующие значения между меньшим файлом и огромным файлом

Почему этот каталог не добавляется в мой PATH, когда я использую sudo?

Ive просто скомпилировал и установил веб-сервер apache из источников, и теперь я хочу добавить скрипт apachectl в PATH

Я знаю, что мне нужно добавить каталог в PATH root пользователя (так как сценарий должен быть запущен как root), поэтому я решил попробовать добавить строку:

  • файл: /root/.bashrc
 # # add directory of apachectl to PATH PATH=$PATH:/usr/local/apache2/bin 

Я знаю, что путь, который я добавил, правильный, но если я запустил команду

 sudo apachectl start 

Я получил:

 sudo: apachectl: command not found 

как я могу добавить этот каталог в свой PATH ?

Способ добавления каталога в PATH sudo (который, как вы выяснили, не совпадает с правами root), заключается в редактировании файла sudoers :

 sudo visudo 

Затем найдите эту строку:

 Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 

И добавьте свой каталог в конец:

 Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/apache2/bin" 

Кроме того, вы можете просто создать символические ссылки на исполняемые файлы, которые вы хотите запустить, и поместить их в /usr/local/bin напрямую:

 sudo find /usr/local/apache2/bin -type f -executable -exec ln -s {} /usr/local/bin/ 

Добавление псевдонима для sudo который экспортирует вашу среду, работает, но является своего рода неэлегантным и, что более важно, работает только для одного пользователя.