ฉันต้องวิ่ง 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"