Chạy lệnh như một người dùng khác một lần:
sudo -u www-data php script.php
Điều này sẽ làm việc nếu bạn đang có root
.
Đối với việc luôn chạy php như www-data
, có một số khả năng. Bạn có thể tạo một shellscript đơn giản. Nếu /usr/bin/php
chỉ là một liên kết mềm đến /usr/bin/php5
hoặc tương tự, điều đó làm cho nó đơn giản hơn. Chỉ cần thay thế liên kết mềm (KHÔNG phải tệp php5
) bằng một tập lệnh như thế này:
#!/bin/sh
sudo -u www-data php5 $*
return $?
Điều đó không được thử nghiệm mặc dù. Cũng cần lưu ý rằng điều này LUÔN LUÔN cố gắng chạy php5
như người dùng www-data
, ngay cả khi người dùng có thể không root
và có thể không được phép làm như vậy. Và nó cũng có thể không phải là những gì bạn thực sự muốn. Một số dịch vụ được cài đặt có thể gặp sự cố khi cố gắng thực thi php.
Một giải pháp (có thể tốt hơn) để chỉ áp dụng điều đó cho root có thể là để lại liên kết mềm /usr/bin/php
và đặt tập lệnh vào /root/bin
thay thế. Sau đó, thêm thư mục đó vào PATH qua .bashrc
, .profile
hoặc tương đương. Nếu bạn có /etc/skel/.profile
, điều đó có thể chỉ ra làm thế nào được thực hiện:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Một khi điều này là trong bạn .bashrc
, .profile
hoặc tương tự, mỗi vỏ mới, bạn mở sẽ cho phép bạn trực tiếp thực hiện bất kỳ tập tin thực thi (+ x) trong $HOME/bin
( /root/bin
root).
Gợi ý: Bạn có thể muốn đặt tên cho tập lệnh trình bao bọc giống như phpwww
vậy để bạn chỉ định rõ ràng php script.php
hoặc phpwww script.php
quyết định xem bạn muốn php thường xuyên hoặc sudo'ed.
Một giải pháp khác là một bí danh đơn giản. Đặt cái này trong của bạn .bashrc
, .profile
hoặc tương tự:
alias phpwww='sudo -u www-data php'