2011-12-09 32 views
17

Tôi đang sử dụng vải để khởi chạy lệnh trên máy chủ từ xa.
Tôi muốn khởi chạy lệnh này với tư cách người dùng khác (không phải người dùng được kết nối cũng không phải là người chủ).Fabric - sudo -u

def colstat(): 
    run('python manage.py collectstatic --noinput') 

Cố

def colstat(): 
    sudo('-u www-data python manage.py collectstatic --noinput') 

Oviously này sẽ không làm việc vì -u sẽ được coi là một chỉ huy và không phải là một lựa chọn của sudo

ra:/bin/bash: - u: lệnh không được tìm thấy

(www-data là người dùng nên chạy lệnh)
Tôi làm cách nào để sử dụng www-data để chạy lệnh của mình từ Vải?

+0

Đáng chú ý rằng tôi nghĩ rằng một ứng dụng không nên yêu cầu đặc quyền sudo. Tôi nghĩ chúng ta nên luôn có khả năng đối phó với những thứ như ACL. –

Trả lời

42

Đánh giá từ documentation:

sudo('python manage.py collectstatic --noinput', user='www-data') 

HTH!

+1

Cảm ơn bạn, tôi không thấy [phần này] (http://docs.fabfile.org/en/1.3.3/api/core/operations.html?highlight=sudo#fabric.operations.sudo) trong doc. Đặc biệt là kể từ khi nó được tài liệu với gần như trường hợp ví dụ của tôi :(Xin lỗi –

Các vấn đề liên quan