профиль bash работает для пользователя, но не для sudo

Я изменил свой .profile, добавив в него папку, если флэш-диск подключен. При запуске команды от имени пользователя она работает нормально, но говорит, что скрипт должен запускаться с помощью sudo (это то, что я хочу). Однако, когда я пытаюсь запустить его с помощью sudo, я получаю «команда не найдена»

У меня есть символическая ссылка (flash) в папке / var / www, указывающая на мой / media / flash диск. (не обращайте внимания на эту настройку, так как она предназначена только для dev)

это мой профиль пользователя.

# set PATH so it includes flash scripts
if [ -d "/var/www/flash/scripts" ] ; then
    PATH="/var/www/flash/scripts:$PATH"
fi

при попытке запустить как sudo я получаю:

sudo: script: command not found    

есть идеи?

8
задан 9 November 2012 в 20:48

4 ответа

Вы также можете переместить файл в каталог, используемый sudoers:

    sudo mv $HOME/bash/script.sh /usr/sbin/ 
0
ответ дан 9 November 2012 в 20:48

Таково поведение sudo в Ubuntu.

, например, выполните следующую команду

echo 'echo $PATH' | sh

и, чем эта

echo 'echo $PATH' | sudo sh 

, вы увидите, что вывод отличается! чтобы избежать разных путей, поместите следующее в ваш ~ / .bashrc

alias sudo='sudo env PATH=$PATH'
0
ответ дан 9 November 2012 в 20:48

Когда вы запускаете скрипт как sudo, вы пытаетесь получить доступ к root. Таким образом, ваш $HOME/.profile не будет доступен вместо /root/.profile.

Так что внесите изменения, которые вы когда-либо делали в $HOME/.profile в /root/.profile. Для создания /root/.profile. Используйте следующие команды.

sudo su
cd /root
touch .profile

после внесения изменений попробуйте запустить скрипт.

или отредактируйте $HOME/.bashrc и добавьте следующую строку

alias sudo='sudo env PATH=$PATH $@'

Надеюсь, это поможет.

0
ответ дан 9 November 2012 в 20:48

Вы можете сохранить значение $PATH при использовании sudo. Используйте visudo, чтобы добавить $PATH в список переменных для сохранения. Строка, подобная следующей в /etc/sudoers, должна помочь:

Defaults env_keep += "PATH"
0
ответ дан 9 November 2012 в 20:48

Другие вопросы по тегам:

Похожие вопросы: