ฉันต้องวิ่ง command ภายใต้ userx ใช้ sudo ที่ปกติไม่สามารถใช้ได้ใน PATH. Command สามารถใช้ได้ใน bash ภายใต้ userx เพราะว่า HOME/.bashrc.
เพียงแค่ถ้าฉันทำงานในทุบตีภายใต้ userx
echo $PATH
/opt/sw-python/extra/pythonbrew/bin:/opt/sw-python/extra/pythonbrew/pythons/Python-2.7.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
ฉันได้รับสิทธิ PATH และ command สามารถใช้ได้.
แต่ถ้าฉันวิ่งด้วย sudo:
sudo -u userx echo $PATH
/home/curuser/.pythonbrew/bin:/home/curuser/.pythonbrew/pythons/Python-2.7.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
sudo -H -u userx echo $PATH
/home/curuser/.pythonbrew/bin:/home/curuser/.pythonbrew/pythons/Python-2.7.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
sudo su python -c 'echo $PATH'
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
sudo su python -c 'bash -c "echo $PATH"'
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
ตัวแปร PATH ไม่ได้ถูกตั้งค่าโดยใช้ userx 's .bashrc.
วิธีการทำงานด้วย sudo เพื่อให้ PATH จะเป็นปกติ PATH ภายใต้ userx?
su usrex -l -c "command"